【问题标题】:.htaccess rewrite redirecting to folders.htaccess 重写重定向到文件夹
【发布时间】:2014-08-04 07:35:54
【问题描述】:

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

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

【问题讨论】:

    标签: .htaccess mod-rewrite directory


    【解决方案1】:

    用这条规则替换你的两条规则:

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

    【讨论】:

    • 我最终改变了它,而不是 page1.php,它是 page1/index.php,这解决了我的问题,也让我的组织更干净。不过谢谢!
    • 很高兴知道您的问题得到了解决,但没有多少人能够更改他们的文件名。我会在这里为那些人留下我的答案
    猜你喜欢
    • 1970-01-01
    • 2013-10-08
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    • 2016-08-30
    • 2014-06-01
    • 1970-01-01
    相关资源
    最近更新 更多