编辑#2:我停用了404页,并没有发现默认页说,这是寻找后,名为.php的一个网址:mod_rewrite的和干净的URL部分工作
“的请求的URL /事件/ 2012。在这台服务器上找不到php“
所以现在我相信它正在寻找一个实际的文件,当它不存在。任何人??
编辑#1:看起来像循环重定向是固定的,但我仍然不知道为什么重写不起作用的事件页面。/events/works蛮好的,但是/ events/2012/title-id /去了404./breweries /和arizona-breweries/brewery-name/works也是如此,我不确定我错过了什么。
我想添加一个新的目录结构与我的events.php页面。 events/2012/... 我在Breweries.php下有另一个目录结构,工作得很好。
当我尝试sitename.com/events/2012/title-of-event-3/重定向循环加载一个事件,并说:“过多的重定向”和URL看起来像这样:
站点名。 com/events/2012/title-of-event-3.php.php.php.php.php.php.php.php.php.php.php.php.php/
我找了6个小时寻找答案足够。任何和所有帮助表示赞赏!
(没有我没有sitename.com在我真正的htaccess文件)
我htaccess文件:
Options +FollowSymLinks -Multiviews
RewriteEngine on
RewriteBase/
#remove php file extension
#RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteCond %{REQUEST_URI} !^/blog/
RewriteRule ^(.*)/$ $1.php [QSA,L]
#clean urls
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^events/([0-9]+)/(.*)-([0-9]+)/$ events.php?year=$1&title=$2&id=$3 [R,NC,QSA]
RewriteRule ^(.*)-breweries/$ breweries.php?loc=$1 [NC,QSA]
RewriteRule ^(.*)-breweries/(.*)/$ breweries.php?loc=$1&brewery=$2 [NC,QSA,L]
#Force trailing slash after url
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_URI} !example.php
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.sitename.com/$1/ [L,R=301]
#force www
RewriteCond %{HTTP_HOST} !^www.sitename.com$
RewriteRule ^(.*)$ http://www.sitename.com/$1 [R=301,L]
好了,现在我们取得了一些进展,我只好用修改后的版本工作的代码,因为它一直给我一个500错误: 'RewriteCond%{ENV:REDIRECT_STATUS}!^ $ [OR]' 'RewriteCond%{IS_SUBREQ} = true' 'RewriteRule。* - [L]' This停止循环重定向,但我仍然无法访问/ events/2010/title-3 /。但是现在,它只显示了一个正常的404 Not Found而不是.php.php.php等。 – n1ch0la5 2012-03-23 13:33:53
您的docroot中有events.php文件吗? – TerryE 2012-03-25 14:44:50
是的,events.php位于根文件夹中。我完全被难住了。 – n1ch0la5 2012-03-26 16:07:07