这是htaccess的我: 选项+的FollowSymLinks的.htaccess似乎被忽略的RewriteCond
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/pages
RewriteRule ^(.+)/$ /$1 [NC]
RewriteRule ^$ /pages/index.php [NC]
RewriteRule ^([a-z]+)\?([^/]+)$ /pages/$1.php?$2 [NC]
RewriteRule ^([a-z]+)/([^/]+)$ /pages/$1.php?q=$2 [NC]
RewriteRule ^([a-z]+)$ /pages/$1.php [NC]
ErrorDocument 404 /pages/404.php
什么是应该做的是很简单:从URL
- 删除斜线
- direct example.com/tomato to example.com/pages/tomato.php
- direct example.com/tomato?c=red & size = big to example.com/pages/ ?tomato.php C =红色&大小=大
- 直接example.com/tomato/red到example.com/pages/tomato.php?q=r
但是这就是问题所在:任何URL for /pages/tomato.php匹配.htaccess的第7行,这会产生无限循环。这就是为什么我添加/页的例外,但它似乎被忽略 - 我仍然得到这个日志消息500内部服务器错误:
mod_rewrite的:达到内部重定向的最大数量。假设配置错误。如果需要,使用'RewriteOptions MaxRedirects'来增加限制。
这可能与我与虚拟主机一起运行这个事实有关吗?如果是这样,应该做些什么来解决它?
谢谢,是有办法,使其适用于所有以下规则没有一次又一次地复制吗? – jorenl 2010-07-18 21:43:44