我的.htaccess中有许多重写规则和条件,如下所示:
RewriteCond %{QUERY_STRING} "limit"
RewriteRule scripts/api.php - [E=Cache-Control:max-age=3600]
RewriteCond %{QUERY_STRING} "limit"
RewriteRule scripts/api_1.php - [E=Cache-Control:max-age=3600]
RewriteCond %{QUERY_STRING} "limit"
RewriteRule scripts/api_2.php - [E=Cache-Control:max-age=3600]
RewriteCond %{QUERY_STRING} "limit"
RewriteRule scripts/api_3.php - [E=Cache-Control:max-age=3600]
RewriteCond %{QUERY_STRING} "limit"
RewriteRule scripts/api_4.php - [E=Cache-Control:max-age=3600]
以上条件将所有URL缓存在scripts / api.php的URL中包含“限制”字,后跟URL中的查询字符串,例如“&”。我需要添加更多这样的api,因此有没有办法结合所有这些条件并缓存所有包含 scripts / api
的网址像
RewriteCond %{QUERY_STRING} "limit"
RewriteRule scripts/api* - [E=Cache-Control:max-age=3600]
我不认为上述条件是正确的,任何人都可以建议我正确的方法。
答案 0 :(得分:0)
重写规则接受正则表达式作为第一个参数,而不是通配符字符串模式。
这可能是您要寻找的:
RewriteEngine on
RewriteCond %{QUERY_STRING} limit
RewriteRule ^/?scripts/api(_\d+)?\.php$ - [E=Cache-Control:max-age=3600]
在这种情况下使用更精确的模式可能也很有意义...例如,为了防止其他HTTP GET参数以意外的方式进行干预,例如...&otherArg=mylimit&...
之类的可能是不是您要接受的limit
...