在SetEnvIf中添加多个条件

Kri*_*rma 6 html apache .htaccess setenv

我需要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'
Run Code Online (Sandbox Code Playgroud)

说明:

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

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

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

谢谢.

ako*_*ond 2

我认为你不能使用 重定向SetEnvIf。你应该使用mod_rewrite

RewriteCond %{REQUEST_URI} =/press/
RewriteCond %{HTTP_COOKIE} \blanguage=english\b
RewriteRule .* /eng/test.html [R]
Run Code Online (Sandbox Code Playgroud)
  1. 检查是否请求 /press/
  2. 检查 cookie 是否设置为特定值。
  3. 重定向规则