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.
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.
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
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.
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.
@ 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!
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.
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 ...
Ce code vous aidera à rediriger et à tout conserver après l'URL.
RewriteCond %{HTTP_Host} ^domainname.com
RewriteRule ^(.*) http://domainname.com/$1 [P]