【问题标题】:Htacess Rewrite Rule - Doesn't work without Trailing SlashHtaccess 重写规则 - 没有尾部斜杠不起作用
【发布时间】:2011-11-01 04:25:23
【问题描述】:

所以我有以下重写规则:

RewriteRule ^([a-z0-9_\-]+)(\.php)?$ index.php?page=$1 [NC,L,QSA]
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?shop=$1&page=index [NC,L,QSA]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z_-]+).php$ index.php?shop=$1&page=$2 [NC,L,QSA]

一切似乎都很好,如果我去 domain.com/shop/ 那么它工作正常并显示索引。如果我去 domain.com/shop/about.php 那就完美了。

唯一不起作用的是当我去 domain.com/shop 没有尾部斜杠时,它不显示任何东西我得到一堆错误。

有谁知道如何解决这个问题?添加到我的代码中可能非常简单,但我似乎无法弄清楚。

谢谢!

【问题讨论】:

    标签: php .htaccess mod-rewrite url-rewriting


    【解决方案1】:

    在您的第二条规则中,在斜杠后添加?

    RewriteRule ^([a-zA-Z0-9_-]+)/?$ index.php?shop=$1&page=index [NC,L,QSA]
    

    这将使尾随 / 成为可选

    【讨论】:

      【解决方案2】:

      我通常以/?$ 结束我的规则,这意味着字符串以一个斜线或没有斜线结尾。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-03-12
        • 1970-01-01
        • 1970-01-01
        • 2021-12-24
        • 2017-07-16
        • 1970-01-01
        • 2013-01-07
        相关资源
        最近更新 更多