2009-07-27 3 views
1

Эй, ребята, у вас есть вопрос относительно апача. У меня есть сайт, который был перепроектирован, но я хочу захватить все «старые» ссылки, которые люди могут занести в закладки или перейти из поисковых систем на старый сайт, находящийся под новым доменным именем. Как получить apache для перенаправления только 404, не найденного на старом сайте?Перенаправить 404 в другой домен с apache?

ТИА,

J

+0

** редактировать: ** Спасибо за ответы до сих пор! В то время как решение @ seth будет работать, ищет решение, специфичное для Apache. Проблема заключается в том, что у нас есть OldSite, который в настоящее время находится на веб-сайте www.example.com и переместится на old.example.com и NewSite, который будет размещен на www.example.com. Теперь я хочу ничего, что не на новом сайте (например, www.example.com/oldpage.html), чтобы перейти на old.example.com. Решение похоже на то, что на страницах www.example.com 302 на old.example.com есть страницы не на страницах www.example.com, а затем страницы не возвращаются 404. Мы не знаем, какие страницы будут в приложении, так как это CMS привод. –

ответ

0

Вы можете установить 404 документа в CGI, который перенаправляет пользователя.

ErrorDocument 404 /cgi-bin/redirect-to-other.cgi 
1

Другой вариант, аналогичный предложенному @seth является добавление обработчика, так что указывает на статический HTML-страницы, которые вы можете использовать, чтобы объяснить пользователю, что произошло, и представить их варианты.

Вы можете включить мета перенаправление, чтобы, если через несколько секунд они ничего не сделают, они будут автоматически перенаправлены.

Какой вариант будет работать лучше всего, это действительно зависит от вас.

4

Ваш старый домен должен отображать все ответы и возвращать ответ «301 перемещается навсегда» с новым доменом в поле «Местоположение» заголовка. 404 означает «не найден», и в этом случае это не совсем верно.

+0

Это будет работать, если я перенаправляюсь на новый URL-адрес, однако это новый сайт, использующий старый URL-адрес, а старый сайт - другой URL-адрес. Надежно переместить 301 на постоянной основе в этой ситуации не получится. –

+0

Ах, поэтому вы хотите, чтобы 404 ссылки на новом сайте перешли на старый сайт в новом домене ... это имеет смысл, но отличается от того, как я понял вашу проблему :) – workmad3

5

Вы должны сначала решить, какой код состояния вы хотите отправить. Отправка кода статуса 404 и перенаправления невозможна.

Но Seth было уже отметить правильный метод, то ErrorDocument directive:

# local path 
ErrorDocument 404 /local/path/to/error/document 
# external URI 
ErrorDocument 404 http://uri.example/to/error/document 

Если вы используете локальный путь, код 404 состояния посылается. Если вы используете абсолютный URI, отправляется код состояния 302 (временная переадресация).

И если вы хотите, чтобы отправить 301 редирект:

Redirect 301/http://new.example.com/ 
Смежные вопросы