/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
谢谢,劳里安
发布于 2009-04-07 14:59:12
遗憾的是,您不能使用mod_rewrite直接比较两个变量。(或者至少我也不知道该怎么做。)
但是,有一种解决方法:
RewriteCond %{ENV:UNIQUE_ID}:%{QUERY_STRING} !^(.+):\1$
我选择了:
作为分隔符,但如果您愿意,也可以使用任何其他分隔符。如果可以指定UNIQUE_ID
值的结构,就应该这样做。
发布于 2009-12-17 05:34:35
如果推荐人与你所在的域名不同,比如一个人第一次访问你的网站,但没有使用你网站内的链接,你可以检查HTTP_REFERRER。同样的技术也被用来防止图像的热链接。
https://stackoverflow.com/questions/726107
复制相似问题