我们有一位客户以某种方式更改了Windows注册表,MSIE始终显示“MSIE 7.0b”,尽管安装了更新的版本。
我们的Web应用程序至少需要MSIE 8.因此我尝试使用mod_rewrite来更改HTTP_USER_AGENT的值:
RewriteEngine On
RewriteCond expr "%{HTTP_USER_AGENT} -strmatch 'MSIE 7.0b'"
RewriteRule .* - [L,E=HTTP_USER_AGENT:'MSIE 8']
#RewriteRule .* [L,E=HTTP_USER_AGENT:'MSIE 8']
#RewriteRule .* [L,E=HTTP_USER_AGENT::'MSIE 8']
* The apache2 configtest failed.
Output of config test was:
AH00526: Syntax error on line 2 of /etc/apache2/conf-enabled/rewrite.conf:
RewriteRule: bad flag delimiters
Action 'configtest' failed.
正如您所看到的,我已经测试了RewriteRule的不同版本,但我总是得到相同的错误。 那么,更改HTTP_USER_AGENT设置的RewriteRule的正确构造是什么?
感谢任何提示,
的Stefan
一些进展:将RewriteRules更改为
RewriteRule .* - [E=HTTP_USER_AGENT:"MSIE\ 8"]
#RewriteRule .* - [E=User-Agent:"MSIE\ 8"]
删除错误消息,但不会更改MSIE的版本。我也试过
BrowserMatch "MSIE 7\.0b" User-Agent="MSIE 8.0"
SetEnvIf User-Agent "MSIE 7\.0b" User-Agent="MSIE 8.0"
但也没有成功。是否可以改变这个变量?
的Stefan
答案 0 :(得分:0)
在mod_rewrite中使用E = ...更改环境变量而不是http标头。如果要更改http标头,则需要使用mod_headers。这是文档: