2013-04-10 7 views
2

Ive положить файл Htaccess на сайте со следующимHtaccess застрял в бесконечном цикле

<Files ~ "^\.(htaccess|htpasswd)$"> 
deny from all 
</Files> 

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^(www\.ic-furniture\.com)(:80)? [NC] 
RewriteRule ^(.*) http://ic-furniture.com/$1 [R=301,L] 
order deny,allow 

redirect 301 /index.php http://ic-furniture.com/ 
redirect 301 /index.html http://ic-furniture.com/ 

ErrorDocument 404 http://ic-furniture.com/404.html 

, что им пытаются сделать

  • удалить WWW.
  • удалить /index.html
  • если кто-то нажимает на ссылку на сайт/index.php я хочу, чтобы перейти на главную страницу
  • 404 страница ошибки в 404.html

но когда я загрузить этот им получать сообщение об ошибке

страница не Перенаправление правильно

Firefox ч поскольку обнаружено, что сервер перенаправляет запрос на этот адрес таким образом, который никогда не будет завершен.

любая идея, что им делать неправильно здесь, ив сходит с ума, пытаясь понять это

+1

ив взглянули Arround и проблема возникает из-за - Технически, когда вы запрашиваете/запрашиваете index.html (данный index.html - это DirectoryIndex, что обычно имеет место), так что это действительно приведет к циклу - так что вместо этого вам нужно использовать - RewriteRule^index \ .html $ http://www.mysite.com/ [L, R = 301] – sam

+0

Да, ваше право! Я отвечал, когда увидел ваш комментарий. Собственно, здесь, в ** OP **, можно ответить на ваш собственный вопрос. – 5ervant

+1

ahh ok плохо напишите это ниже, спасибо – sam

ответ

3

Вы должны использовать переменную %{THE_REQUEST}, чтобы проверить, если фактический запрос для индексного файла, а затем перенаправить соответственно:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html) 
RewriteRule^http://ic-furniture.com/ [L,R=301] 
+0

это предпочтительнее, когда будет время, когда вы переходите к index.html и не хотите index.html? – sam

+0

@sam это предпочтительнее двух операторов переадресации, которые у вас есть. Он делает то же самое, за исключением того, что не вызывает цикл переадресации. –

0

Ive было смотреть Arround и проблема вызвана:

Технически, когда вы запрашиваете/вы запрашиваете index.html (при index.html является DirectoryIndex, который обычно бывает), так что действительно приведет к петле

так вместо этого вы должны использовать:

RewriteRule ^index\.html$ mysite.com [L,R=301]