/foo/.htaccess执行内部重定向
RewriteRule ^(.*)$ /bar/?%{ENV:UNIQUE_ID}
/bar/.htaccess需要认识到请求不是内部的,问题是我无法弄清楚如何使比较工作
RewriteCond %{ENV:UNIQUE_ID} !%{QUERY_STRING}
即使是
RewriteCond %{QUERY_STRING} %{QUERY_STRING}
不匹配,我想表达式的右边有一个语法问题,转义%没有帮助。
我测试了上述两个变量在内部重定向上的值与
相同RewriteRule ^(.*)$ /test/%{QUERY_STRING}/%{ENV:UNIQUE_ID}
会显示出来。
服务器是Apache / 2.2.3
谢谢, Laurian
答案 0 :(得分:15)
遗憾的是,您无法直接将两个变量与mod_rewrite进行比较。 (或者至少我不知道怎么做。)
但是有一个解决方法:
RewriteCond %{ENV:UNIQUE_ID}:%{QUERY_STRING} !^(.+):\1$
我选择:
作为分隔符,但如果您愿意,可以使用任何其他分隔符。如果您可以指定UNIQUE_ID
值的结构,则应该这样做。
答案 1 :(得分:0)
如果引荐来源与您所在的域名不同,例如第一次访问但未使用您自己网站中的链接,则可以检查HTTP_REFERRER。相同的技术用于防止图像热链接。