[英]How do I get two variables to use in an .htaccess redirect?
我正在尝试根据Cookie值和查询字符串值进行重定向,但似乎无法使两个值都能正确返回。 我正在使用:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_COOKIE} secret=([^;]+) [AND]
RewriteCond %{QUERY_STRING} ^file=(\w+)$
RewriteRule ^downloads/(.*)/$ /downloads/%1/%2
并使用网址“ /downloads/?file=protected/doc.pdf”。 我想重定向到“ / downloads / [secret cookie_val] /protected/doc.pdf”
谢谢!
没有[AND]
标志。 默认情况下,条件一起“与”。
另外,如果您请求/downloads/?file=protected/doc.pdf
,则正则表达式中的/
太多了:
RewriteEngine on
RewriteBase /
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteCond %{QUERY_STRING}:::%{HTTP_COOKIE} ^file=(\w+):::secret=([^;]+)
RewriteRule ^downloads/(.*)/?$ /downloads/%2/%1
编辑:刚意识到您正在尝试使用%2
访问先前的RewriteCond
反向引用,该引用将为空白,因为您已经用%{QUERY_STRING}
创建了另一个分组。 因此,您需要将2个变量组合为一个RewriteCond
并与以下对象进行匹配:%{QUERY_STRING} :::%{HTTP_COOKIE}。 然后,您将能够同时反向引用查询字符串和cookie。
RewriteCond %{ENV:REDIRECT_STATUS} !200
用于防止重写引擎循环。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.