Подтвердить что ты не робот

Как 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/

Но я не уверен, что это работает или нет (пока не могу проверить, так как я жду данных о домене и т.д.). Я просто хочу быть уверенным, когда я буду размещать сайт вживую. Является ли это правильным или я не в порядке?

Спасибо!

4b9b3361

Ответ 1

Это должно сделать это:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !new-example.com$ [NC]
RewriteRule ^(.*)$ http://new-example.com/$1 [L,R=301]

Ответ 2

попробуйте добавить следующее к вашему .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]

Ответ 3

В исходной команде используется mod_alias модуль Apache, и он будет работать, хотя вы можете обновить его до:

Redirect 301 / http://www.new-example.com/

Удаление точной области текущего (старого) домена означает, что все домены, указывающие на эту папку, будут отправлены в новый домен, что сделает одну строку script более надежной.

В других ответах используется модуль mod_rewrite Apache. Если у вас есть то, что также установлено, это прекрасно использовать, хотя это 4 + строки кода по сравнению с одним. Кроме того, mod_alias является частью базового пакета, поэтому он должен быть на всех серверах Apache, а mod_rewrite является необязательным расширением, поэтому некоторые из них могут не иметь его.