【问题标题】:RewriteCond %{REQUEST_URI} : how to stop, if REQUEST_URI contains ?p=about or ?p=contactRewriteCond %{REQUEST_URI} :如何停止,如果 REQUEST_URI 包含 ?p=about 或 ?p=contact
【发布时间】:2012-01-20 04:19:53
【问题描述】:

我正在尝试在 .htaccess 文件中创建重写条件,以检查 url 是否包含设置的参数 p 和参数 p=about 或 p=contact。 如果 ?p=about 或 ?p=contact,下面的 RewriteRule 不应该被执行。 有人可以帮我 RewriteCond 吗?

RewriteCond %{REQUEST_URI} (?p=about_us|?p=contact)

不工作。

【问题讨论】:

    标签: .htaccess mod-rewrite parameters


    【解决方案1】:

    如果查询字符串没有p 参数,其值为about uscontact,则下面的RewriteCond 将匹配,即如果它具有p= about uscontact,则以下规则将不会执行

    RewriteCond %{QUERY_STRING} !(^|&)p=(about_us|contact)(&|$) [NC]
    

    【讨论】:

    • 不确定谁投了反对票……这是一个不错的答案。我现在会投票。但是,如果满足上述条件,您可能知道 OP 想要跳过规则,所以您请把否定 ! 像这样:RewriteCond %{QUERY_STRING} !(^|&)p=(about_us|contact)(&|$) [NC]
    • @anubhava 谢谢!我错过了否定,但它现在在
    • 我也不确定谁投了反对票。我已经测试过了,它可以工作。这是我的问题的解决方案。非常感谢!
    猜你喜欢
    • 2018-01-02
    • 2014-07-27
    • 2012-04-17
    • 2011-12-23
    • 1970-01-01
    • 2016-07-10
    • 2020-04-05
    • 2012-09-10
    • 1970-01-01
    相关资源
    最近更新 更多