我需要在SetEnvIf文件中使用.htaccess

我还需要满足多个条件,然后显示所需的URL。

这是我的代码:

SetEnvIf Remote_Host "^" press_flag=0
SetEnvIf Request_URI '/press/$' press_flag=1
SetEnvIf Cookie 'language\_uiAAAenglishBBB' press_flag=press_flag+1
SetEnvIf press_flag 2 Request_URI='Remote_Host/eng/test.html'

解释:
  • 在第一行中,我将变量press_flag设置为0
  • 第二行,我检查URL是否以以下文本结尾:/press/,如果为true,则将'press_flag'设置为1
  • 第三行,我检查cookie是否匹配language\_uiAAAenglishBBB文本,如果为true,则将press_flag值增加1。
  • 最后一行,我检查press_flag的值是否为2,然后相应地设置HTTP_HOST

  • 但是,当我在浏览器中打开URL/press/时,它没有被重定向。

    请帮助调试和修复此代码。

    谢谢。

    最佳答案

    我认为您无法使用SetEnvIf重定向。您应该改为使用mod_rewrite:

    RewriteCond %{REQUEST_URI} =/press/
    RewriteCond %{HTTP_COOKIE} \blanguage=english\b
    RewriteRule .* /eng/test.html [R]
    
  • 检查是否请求/press/
  • 检查cookie是否设置为特定值。
  • 重定向规则
  • 10-07 14:15