如何在.htaccess中使用RewriteCond

dw1jzc5e  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(144)

我所展示的规则对于所有包含“checked”参数的URL都非常有效。
但是我需要的是,如果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>
bf1o4zei

bf1o4zei1#

您可以在.htaccess规则文件中尝试***这些规则中的任何一个***。请确保一次只使用一个规则,具体取决于您的使用情况。
请确保在测试URL之前清除浏览器的缓存。

***第一个规则集:***如果您要匹配(否定)精确的单词checked,则使用此规则集。

<IfModule mod_rewrite.c>
RewriteCond %{QUERY_STRING} !\bchecked\b [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>

相关问题