【问题标题】:How to use RewriteCond in .htaccess in negative如何在 .htaccess 中否定地使用 RewriteCond
【发布时间】:2022-10-15 04:17:35
【问题描述】:

我展示的规则适用于所有包含“checked”参数的网址。

但是,如果 url 不包含“checked”参数,我需要的是规则运行。也就是说,相同的规则是否定的。

我试着用“!”就在我“检查”之前,但它没有用。

<IfModule mod_rewrite.c>
RewriteCond %{QUERY_STRING} checked [NC]
RewriteRule (.*) /myscript.php?url=https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,QSD]
</IfModule>

【问题讨论】:

    标签: .htaccess


    【解决方案1】:

    你可以试试任何一个.htaccess 规则文件中的这些规则。确保一次只使用一个,具体取决于您的使用情况。

    确保在测试 URL 之前清除浏览器的缓存。

    第一套规则:如果您想匹配(否定)确切的单词checked,请使用此规则集。

    <IfModule mod_rewrite.c>
    RewriteCond %{QUERY_STRING} !checked [NC]
    RewriteRule (.*) /myscript.php?url=https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,QSD]
    </IfModule>
    

    或者

    第二套规则:如果您的规则集中除了checked 之外什么都没有,那么您可以简单地否定它。

    <IfModule mod_rewrite.c>
    RewriteCond %{QUERY_STRING} !checked [NC]
    RewriteRule (.*) /myscript.php?url=https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,QSD]
    </IfModule>
    

    【讨论】:

    • @truemar,对你有用吗?
    • 它有效,非常感谢你!
    猜你喜欢
    • 2020-05-07
    • 1970-01-01
    • 2015-05-30
    • 2023-01-25
    • 2014-07-10
    • 2013-07-17
    • 2015-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多