Я пытаюсь перенаправить старый домен в новый поддомен, пытаясь сохранить старый домен видимым в адресной строке браузера.Как перенаправить старое доменное имя на новое доменное имя, сохранив прежнее доменное имя в адресной строке браузера?
Я использовал htaccess для этого, и все работает, за исключением сохранения старого домена, видимого в адресной строке.
Другая важная вещь заключается в том, что необходимо сохранить папки в переменных URL и GET.
Я пытаюсь сделать все это элегантно через htaccess, потому что я не хочу использовать i-frame для этого.
Вот код, который я использовал до сих пор. Он работает, за исключением сохранения старого имени домена в адресной строке браузера.
Мой вопрос: как мне отображать старое доменное имя в адресной строке браузера после перенаправления? Я где-то читал, что это можно сделать с помощью так называемого «проксирования контента», но я могу ошибаться. Я также не знаю, как это работает.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_HOST} ^domain.com [nc]
RewriteRule ^(.*)$ http://subdomain.domain.com/$1 [r=301,nc,L]
RewriteCond %{HTTP_HOST} ^www.domain.com [nc]
RewriteRule ^(.*)$ http://subdomain.domain.com/$1 [r=301,nc,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Update:
Хорошо, так что я получил еще один шаг вперед. Следующий код работает, когда я помещаю файлы сайта в подкаталог корня.
Однако все еще есть проблема с этим. Хотя он перенаправляет example.com в example.com/subdirectory, он не перенаправляет example.com/index.php в example.com/subdirectory/index.php.
Я все еще пытаюсь выяснить, как это сделать, чтобы он работал со всеми файлами, включая index.php.
#Redirect a domain to a subdirectory, while displaying only the domain and not the subdirectory in the browser address bar.
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_HOST} ^example.com [nc]
RewriteRule ^$ /subdirectory/ [nc,L,QSA]
RewriteCond %{HTTP_HOST} ^www.example.com [nc]
RewriteRule ^$ /subdirectory/ [nc,L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Еще одно примечание. Поскольку все элементы моего веб-сайта используют относительные пути, я должен был установить корень HTML в подкаталог также для того, чтобы все работало, потому что из-за переписывания относительные пути в HTML-сайте сайта рассматривали неправильный корневой каталог для файлов , А именно они связывались с фактическим корневым каталогом, а не с подкаталогом. Я установил HTML корень/основание в поддиректории следующим образом:
<head>
<base href="http://<?php echo $_SERVER['HTTP_HOST']; ?>/subdirectory/" />
</head>
Update:
Хорошо, так что я получил еще один шаг вперед. Следующий код работает, когда я помещаю файлы сайта в подкаталог корня.
Однако все еще есть проблема с этим. Хотя он перенаправляет example.com в example.com/subdirectory, он не перенаправляет example.com/index.php в example.com/subdirectory/index.php.
Я все еще пытаюсь выяснить, как это сделать, чтобы он работал со всеми файлами, включая index.php.
#Redirect a domain to a subdirectory, while displaying only the domain and not the subdirectory in the browser address bar.
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_HOST} ^example.com [nc]
RewriteRule ^$ /subdirectory/ [nc,L,QSA]
RewriteCond %{HTTP_HOST} ^www.example.com [nc]
RewriteRule ^$ /subdirectory/ [nc,L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Еще одно примечание. Поскольку все элементы моего веб-сайта используют относительные пути, я должен был установить корень HTML в подкаталог также для того, чтобы все работало, потому что из-за переписывания относительные пути в HTML-сайте сайта рассматривали неправильный корневой каталог для файлов , А именно они связывались с фактическим корневым каталогом, а не с подкаталогом.Я установил HTML корень/основание в поддиректории следующим образом:
<head>
<base href="http://<?php echo $_SERVER['HTTP_HOST']; ?>/subdirectory/" />
</head>
Является ли содержание точно таким же в субдомене, что и в старом домене? –
- это домен и субдомен на том же сервере? – miah
@misplacedme: Нет, контент в подобласте отличается. –