2

我已经在网站上放置了一个 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
  • 如果有人单击指向 site/index.php 的链接,我希望他们转到主页
  • 404 错误页面到 404.html

但是当我上传这个我得到一个错误

页面未正确重定向

Firefox 检测到服务器正在以永远不会完成的方式重定向对该地址的请求。

知道我在这里做错了什么,我一直想弄清楚

4

2 回答 2

3

您应该使用该%{THE_REQUEST}变量来检查实际请求是否针对索引文件,然后相应地重定向:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html)
RewriteRule ^ http://ic-furniture.com/ [L,R=301]
于 2013-04-10T18:30:45.407 回答
0

我环顾四周,问题是由以下原因引起的:

从技术上讲,当您请求/您请求 index.html 时(给定 index.html 是 DirectoryIndex,通常是这种情况)因此确实会导致循环

所以你必须使用:

RewriteRule ^index\.html$ mysite.com [L,R=301] 
于 2013-04-10T15:49:18.780 回答