Ответ 1
Это должно сделать это:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !new-example.com$ [NC]
RewriteRule ^(.*)$ http://new-example.com/$1 [L,R=301]
Я перенаправляю один домен другому, но я хочу сохранить путь в перенаправлении. Так, например, я хочу посетить www.example.com/services/education/page.html
, но мое перенаправление приведет их к www.new-example.com/services/education/page.html
. Что я пишу в файле .htaccess, чтобы сохранить путь "/services/education/page.html"?
Сейчас у меня есть:
redirect 301 http://www.example.com/ http://www.new-example.com/
Но я не уверен, что это работает или нет (пока не могу проверить, так как я жду данных о домене и т.д.). Я просто хочу быть уверенным, когда я буду размещать сайт вживую. Является ли это правильным или я не в порядке?
Спасибо!
Это должно сделать это:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !new-example.com$ [NC]
RewriteRule ^(.*)$ http://new-example.com/$1 [L,R=301]
попробуйте добавить следующее к вашему .htaccess в корень вашего домена example.com
RewriteEngine On
RewriteBase /
#for all requests to www.example.com
RewriteCond %{HTTP_HOST} ^www\.example\.com$
#redirect them to new-example
RewriteRule (.*) http://www.new-example.com/$1 [R=301,L]
В исходной команде используется mod_alias
модуль Apache, и он будет работать, хотя вы можете обновить его до:
Redirect 301 / http://www.new-example.com/
Удаление точной области текущего (старого) домена означает, что все домены, указывающие на эту папку, будут отправлены в новый домен, что сделает одну строку script более надежной.
В других ответах используется модуль mod_rewrite
Apache. Если у вас есть то, что также установлено, это прекрасно использовать, хотя это 4 + строки кода по сравнению с одним. Кроме того, mod_alias
является частью базового пакета, поэтому он должен быть на всех серверах Apache, а mod_rewrite
является необязательным расширением, поэтому некоторые из них могут не иметь его.