如何使这项工作?RewriteCond%{ENV:UNIQUE_ID}!%{QUERY_STRING}

5 apache mod-rewrite

/foo/.htaccess执行内部重定向

RewriteRule ^(.*)$ /bar/?%{ENV:UNIQUE_ID}
Run Code Online (Sandbox Code Playgroud)

/bar/.htaccess需要认识到请求不是内部的,问题是我无法弄清楚如何使比较工作

RewriteCond %{ENV:UNIQUE_ID} !%{QUERY_STRING}
Run Code Online (Sandbox Code Playgroud)

甚至一个

RewriteCond %{QUERY_STRING} %{QUERY_STRING}
Run Code Online (Sandbox Code Playgroud)

不匹配,我想在表达式的右边有一个语法问题,转义%没有帮助.

我测试了上面的两个变量在内部重定向上具有相同的值

RewriteRule ^(.*)$ /test/%{QUERY_STRING}/%{ENV:UNIQUE_ID} 
Run Code Online (Sandbox Code Playgroud)

会表明它.

服务器是Apache/2.2.3

谢谢,劳里安

Gum*_*mbo 15

遗憾的是,您无法直接将两个变量与mod_rewrite进行比较.(或者至少我不知道怎么做.)

但有一个解决方法:

RewriteCond %{ENV:UNIQUE_ID}:%{QUERY_STRING} !^(.+):\1$
Run Code Online (Sandbox Code Playgroud)

我选择了:as分隔符,但如果您愿意,可以使用任何其他分隔符.如果你可以指定UNIQUE_ID值的结构,你应该这样做.