.htaccess重写重定向到文件夹

时间:2014-06-13 17:03:54

标签: .htaccess mod-rewrite directory

我正在尝试从我的网页中删除.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,所以我收到了一个访问错误是被禁止的。

如何通过重写来解决这个问题,还是应该以不同的方式组织/构建我的文件?

1 个答案:

答案 0 :(得分:0)

使用此规则替换您的2条规则:

RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]