【问题标题】:How to escape “?” using regex in .htaccess for mod_rewrite如何逃脱“?”在 .htaccess 中使用正则表达式进行 mod_rewrite
【发布时间】:2012-01-30 13:56:41
【问题描述】:

这条规则有什么问题?

RewriteRule ^page\?v=([^/]+)$ page.php?v=$1 [L,NC]

我只是想让 URL 看起来像这样

http://www.domainname.com/page?sk=info

【问题讨论】:

    标签: php .htaccess mod-rewrite


    【解决方案1】:

    如果查询部分没有变化,则不必包含它们。

    RewriteRule ^page$ page.php [L,NC]
    

    RewriteRule 不会匹配查询字符串的任何部分。 page?v=123 仍将变为 page.php?v=123

    另外,您的 RewriteRule 在您谈论 ?sk=info 时使用 ?v=

    【讨论】:

      【解决方案2】:

      此外,您可以在此处找到有关此 mod_rewrite 案例的更多信息: http://wiki.apache.org/httpd/RewriteFlags/QSA

      另一个关于这个问题的 SO 条目here

      【讨论】:

        猜你喜欢
        • 2015-06-06
        • 1970-01-01
        • 1970-01-01
        • 2019-08-20
        • 1970-01-01
        • 1970-01-01
        • 2013-05-15
        • 2019-01-07
        相关资源
        最近更新 更多