我知道这里有数百个关于htaccess的帖子,但我似乎无法找到符合我的情况的帖子。htaccess重写导致循环,如果404
我有两个重写规则发生:
第一回合example.com/filename.php到example.com/filename/以及example.com/filenameA-filenameB.php到example.com/filenameA/filenameB/
第二个在所请求的URL的末尾添加了一个尾部的斜杠(如果没有的话)。
一切都很好,直到你输入一个不正确的URL,例如example.com/foo或example.com/foo/,其中foo.php不存在。我得到“该网页没有正确重定向”,地址栏显示“example.com/foo.php.php.php.php.php.php.php.php.php.php ...”。我只想得到一个404,所以我可以重定向到404页面,但没有任何我尝试似乎正在工作。
感谢您的帮助!
RewriteEngine On
RewriteBase/
RewriteRule ^(.+)/(.+)//?$ $1-$2.php [NC,L]
RewriteRule ^(.+)//?$ $1.php [NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://example.com/$1/ [L,R=301]
'//?'应该做什么? – Gerben