Apache 为什么环境变量在htaccess中不起作用
我有这个权限Apache 为什么环境变量在htaccess中不起作用,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我有这个权限 RewriteEngine On RewriteCond %{REQUEST_URI} /xxx.php$ [NC] RewriteRule ^.*$ - [ENV=MAKE_CACHE:true] <If "%{ENV:MAKE_CACHE} =~ /^true$/"> Header set CUSTOM_HEADER "custom value or my header" </If> 重新编写引擎打开 RewriteCond%{REQUES
RewriteEngine On
RewriteCond %{REQUEST_URI} /xxx.php$ [NC]
RewriteRule ^.*$ - [ENV=MAKE_CACHE:true]
<If "%{ENV:MAKE_CACHE} =~ /^true$/">
Header set CUSTOM_HEADER "custom value or my header"
</If>
重新编写引擎打开
RewriteCond%{REQUEST_URI}/xxx.php$[NC]
重写规则^.*$-[ENV=MAKE_CACHE:true]
标题设置自定义标题“自定义值或我的标题”
我简化了htaccess,但您可以理解:如果用户试图重新访问“xxx.php”,我会设置一个环境变量,而后者我会设置一个头自定义_头,但由于某些原因,Apache在到达行“”时没有“看到”变量“MAKE_CACHE”。如何解决这个问题?这与Apache内部处理的非直观顺序有关
的表达式与Apache内部处理的非直观顺序有关
的表达式是否使用Apache2.4*?是否使用Apache2.4*?明白了!你确实是对的,我以前在谷歌上读过,但无法确认。谢谢!你的两个选择都很好,但我在htaccess方面不太聪明,无法实现这一点。你能告诉我如何使用第一个选项来实现这一点吗?我想我可以做的第二个选择是:你是说我应该在rewritecond为true时设置一个头,然后检查头是否存在?如何检查标题是否存在,如何使用mod_rewrite设置标题?很好!你能解释一下你为什么用“m#”吗?另外,你能告诉我如何检查FOO栏是否设置好,这样我就可以设置我的自定义#u标题了吗?明白了!你确实是对的,我以前在谷歌上读过,但无法确认。谢谢!你的两个选择都很好,但我在htaccess方面不太聪明,无法实现这一点。你能告诉我如何使用第一个选项来实现这一点吗?我想我可以做的第二个选择是:你是说我应该在rewritecond为true时设置一个头,然后检查头是否存在?如何检查标题是否存在,如何使用mod_rewrite设置标题?很好!您能解释一下为什么使用“m#”吗?另外,您能告诉我如何检查FOO栏是否已设置,以便设置自定义的#u标题吗?
Header always set FOO BAR "expr=%{REQUEST_URI} =~ m#^/xxx.php$#"