web-dev-qa-db-fra.com

Rediriger le site Web mais conserver l'URL d'origine dans la barre d'adresse

J'ai un nom de domaine local .dz qui n'autorise pas les modifications DNS , je souhaite rediriger le domaine et toutes les pages vers un autre domaine .com et conserver l'adresse .dz dans la barre d'adresse et masquer complètement le domaine .com.

J'ai parcouru l'ensemble de l'Internet, mais toutes les solutions ne le font pas: certaines redirigent vers le .com et les affichages .com dans la barre d'adresse et d'autres redirigent uniquement la page d'accueil.

Je me demande si le est une fonction php à lire directement à partir du domaine .com, puis écrit le contenu dans le domaine .dz

J'ai accès aux fichiers .htaccess ou PHP.

9
seddik

Essayez avec proxy dans .htaccess:

RewriteEngine  on
RewriteRule ^ http://domain.com%{REQUEST_URI} [NE,P]

Il est possible que cela soit suffisant dans votre cas, si le site est simple.

6
Croises

Je suppose que vous avez accès au répertoire httpd.conf ou conf,

Essayez ceci dans votre httpd.conf dans la section où mod_proxy est mentionné.

ProxyPass / http://yourwebsite.com/ smax=0 ttl=60 retry=5
ProxyPassReverse / http://yourwebsite.com/ smax=0 ttl=60 retry=5

Et peut-être au cas où vous devriez mettre les règles ci-dessus dans un fichier de configuration séparé nommé httpd-ajp.conf, vous le trouverez dans le répertoire conf/extra.

Et lorsque vous avez terminé, vous devez redémarrer votre serveur avant d'essayer de vérifier.

Modifier

Comme vous avez dit que vous n'avez pas accès au répertoire conf, vous pouvez essayer la règle ci-dessous dans .htaccess

RewriteEngine On
RewriteRule ^(.*)$ http://domain.com/$1 [P]

Mais vous devez vous assurer que mod_proxy est activé, ces lignes ne doivent pas être commentées dans httpd.conf si vous êtes en mesure de le demander à votre fournisseur d’hébergement.

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
5
Abhishek Gurjar

Il existe une méthode pour autant qu’ils soient hébergés séparément. Cependant, votre .com devra être en direct et fonctionner.

Vous pouvez ensuite utiliser PHP en tant que système proxy.

<?php 
$protocol = "http";
$domain = "domain.com";

$ch = curl_init();

$requestPath = $_SERVER['REQUEST_URI'];
$queryString = http_build_query($_GET);

curl_setopt($ch,CURLOPT_URL, $protocol.'://'.$domain.$requestPath);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);

$mode = $_SERVER['REQUEST_METHOD'];
$headers = getallheaders();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

if ($mode == 'POST'){
    curl_setopt($ch,CURLOPT_POST, count(http_build_query($_POST)));
    curl_setopt($ch,CURLOPT_POSTFIELDS, http_build_query($_POST));
}

$response = curl_exec($ch);

$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$body = substr($response, $header_size);

$headers = explode("\r\n", $header);
unset($headers[0]);
echo "<pre>";
foreach($headers as $val){
    if(strpos($val, "Transfer-Encoding") === false){
        header("$val");
        flush(); 
    }
}
echo "</pre>";
//close connection
curl_close($ch);
echo $body;
?> 

avec un fichier de réécriture 

RewriteEngine On
RewriteRule .* index.php [L]

si vous hébergez ceci sur votre domaine .dz, il sera alors dirigé vers votre .com sans changer le nom de domaine.

2
Martin Barker

en fait, l'application Web doit être hébergée dans .dz domain et vous devez rediriger .com de manière permanente vers dz. quoi que vous fassiez sauf changer de DNS dans le domaine dz Ce sera une requête sur .com pas elle-même (le nom de domaine dz).

Je veux dire qu’il n’ya aucun moyen de mapper toutes les URL et de créer un curl sur .com pour chaque requête, de modifier le fichier DOM et de l’imprimer. ou utilisez Iframe, ce qui signifie que vous devriez également conserver .com domain. 

2
Saeed.Gh

@ Séddik, S'il te plaît, essaye comme ça dans ton fichier .htaccess

RewriteCond %{HTTP_Host} ^www.your-local-domain.dz


RewriteRule ^(.*) http://www.your-another-domain.com/$1 [P]

Cela peut vous aider! 

0
Abdul Salam

Pour afficher le contenu de DomainB mais afficher l'URL de DomainA, il existe 2 options:

1. Domaine du parc

Si DomainB est votre nom de domaine principal , ajoutez simplement DomainA en tant que Parked Domain .

2. Rediriger à l'aide d'un fichier .htaccess

Cette méthode est la suivante: rediriger et tout conserver après l'URL

La première option affiche le même contenu sur une même URL que sur une autre ..__ Pour ce faire, vous devez modifier votre fichier .htaccess pour le domaine dans lequel vos utilisateurs iront et insérer ces lignes de code:

RewriteCond %{HTTP_Host} ^DomainA.com
RewriteRule ^(.*) http://DomainB.com/$1 [P] 

Si vous utilisez le gestionnaire de fichiers dans cPanel , assurez-vous de pouvoir afficher les fichiers cachés sélectionnés.

0
anakpanti

vous avez mentionné - "le .dz est trop lent et n'autorise pas le changement de DNS, c'est pourquoi j'ai réservé un .com et je souhaite rediriger" l'hébergement lent ".dz vers" l'hôte rapide ".com ' .. 

Lorsque le domaine .dz est trop lent, il ne vaut pas la peine d'investir votre temps dans la redirection de l'ensemble du trafic Web. Cela ralentira les choses. 

Vous pouvez insérer un code html de redirection (comme méta-actualisation) dans votre domaine .dz d'hébergement lent et servir les utilisateurs directement à partir du domaine .com. Il est hors de question que vous conserviez le domaine .dz 'd'hébergement lent' comme site principal ...

0
srivelayutha raja

Ce code vous aidera à rediriger et à tout conserver après l'URL.

RewriteCond %{HTTP_Host} ^domainname.com    

RewriteRule ^(.*) http://domainname.com/$1 [P]
0
Tchokote Herve