如何使用正则表达式匹配 URI 中的字符串?

如何使用正则表达式匹配 URI 中的字符串?

在我的 Apache 配置 httpd.conf 中,我希望设置如下规则

SetEnvIfNoCase %{QUERY_STRING} ^.*(getBook+)$ no-gzip dont-vary

我希望当我的 URL 看起来像这样时不执行 gzip

http://myurl.fake.com/book/getBook3?id=234 
http://myurl.fake.com/book/getBook1?id=xxx

我不确定是否可以通过在 httpd.conf 中设置类似上述内容来做到这一点。

我之所以使用查询字符串是因为 url myurl.fake.com/book/getBook3是来自 mod_rewrite 的 myurl.fake.com/index.php?controller=book&action=getBook3

谢谢!

答案1

第一个重写规则下面的以下重写规则应该可以解决问题:

RewriteCond %{QUERY_STRING} ^id=[0-9]*$
RewriteRule ^(/book/getBook(1|3))$ $1 [E=no-gzip:1,E=dont-vary:1,QSA]

确保 myurl.fake.com/index.php?controller=book&action=getBook3 的第一个重写规则没有“L”标志

相关内容