我正在尝试从我的网页中删除.php扩展程序,但遇到了麻烦。目前,我在.htaccess文件中有这个:
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^(.*)$ - [L]
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^((.*/)*[^./]+)/*$ $1.php [L]
在大多数情况下,这是有效的。但是,我的网站是结构化的,以便有相同名称的文件夹和页面,例如example.com/page1.php
但是还有一个文件夹page1
,以便example.com/page1/subpage.php显示出我喜欢的内容。
这个.htaccess代码正确地将example.com/page1/subpage指向.php文件,但是对于example.com/page1,它会尝试重定向到该文件夹而不是page1.php,所以我收到了一个访问错误是被禁止的。
如何通过重写来解决这个问题,还是应该以不同的方式组织/构建我的文件?
答案 0 :(得分:0)
使用此规则替换您的2条规则:
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]