2013-03-04 2 views
1

Я пытаюсь добавить правило в файл .htaccess, чтобы, если я вообще меняю свой веб-сайт, он перенаправит пользователя на страницу «under construction», когда они попытаются доступ к моему сайту.Повторяющийся URL-адрес при перенаправлении с помощью .htaccess

Я использую:

# SITE UNDER CONSTRUCTION REDIRECT 
Redirect 302/http://redsquirrelsoftware.co.uk/construction.html 

Но это посылает мне http://redsquirrelsoftware.co.uk/construction.htmlconstruction.htmlconstruction.htmlconstruction.htmlconstruction.htmlconstruction.htmlconstruction.htmlconstruction.htmlconstruction.htmlconstruction.htmlconstruction.html и я, очевидно, ошибка 404.

Как остановить рекурсивный хвост на веб-адресе?

ответ

1

Redirect является mod_alias директиву, которая не может быть смешан с mod_rewrite директивами, так, чтобы предотвратить петли вы должны использовать только директивы mod_rewrite так:

Options +FollowSymlinks -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_URI} !construction\.html [NC] 
RewriteCond %{REQUEST_URI} !folder_to_exclude [NC] 
RewriteRule .*   /construction.html  [R=301,L] 

Этот ответ предполагает, что /construction.html страница в этом домене. Если это не так, замените:

RewriteRule .*    /construction.html   [R=301,L] 

с

RewriteRule .* http://new_domain/construction.html [R=301,L] 
+0

Работает как очарование! Две точки, в последней строке у вас есть [[R = 301, L] '- Я предполагаю, что 301 является кодом перенаправления? В каком случае это должно быть изменено на 302, поскольку это всего лишь временная переадресация? – crazyloonybin

+0

И, во-вторых, как я могу исключить только один файл из этого перенаправления? Например, если есть страница T & C, может ли это быть исключено из перенаправления? – crazyloonybin

+0

Да, нет проблем с изменением его на 'R = 302' или просто' R'. Я уточню ответ с исключением. –

0

Попробуйте использовать предварительное условие:

RewriteCond %{REQUEST_URI} !^/construction.html 
Redirect 302/http://redsquirrelsoftware.co.uk/construction.html 
+0

Я попытался добавить эту строку в, и я - У вас нет разрешения на доступ к /construction.htmlconstruction. htmlconstruction.htmlconstruction.htmlconstruction.htmlconstruction.htmlconstruction.htmlconstruction.htmlconstruction.htmlconstruction.htmlconstruction.htmlconstruction.htmlconstruction.htmlconstruction.htmlconstruction.htmlconstruction.html на этом сервере. Кроме того, при попытке использовать ErrorDocument для обработки запроса была обнаружена ошибка 302 Найденная. – crazyloonybin

Смежные вопросы