我正在使用的网址是example.com/subdir/index.php?foo=bar
index.php包含:<?php echo getenv("testenvvar"); ?>
我在.htaccess中设置环境变量,如下所示:
SetEnvIf Request_URI (index) TestEnv=Worked
打印“工作”。
如果我将其更改为SetEnvIf Request_URI (bar) TestEnv=Worked
,则不会。
我该怎么做?
答案 0 :(得分:2)
要匹配查询字符串,您需要mod_rewrite
个规则,而不是mod_setenv
。
将此代码放在root .htaccess中:
RewriteEngine On
RewriteCond %{QUERY_STRING} bar [NC]
RewriteRule ^ - [E=TestEnv:Worked]
答案 1 :(得分:2)
另一种选择是SetEnvIfExpr:
SetEnvIfExpr "%{QUERY_STRING} =~ /bar/" TestEnv=Worked
答案 2 :(得分:1)
让我解释一下我如何应用它。
假设我们要在请求以下URL时添加X-Robots-Tag标头: https://example.com/?whatever=true
这可以通过在.htaccess文件中添加以下规则来实现:
RewriteEngine On
RewriteCond %{QUERY_STRING} /?whatever=true$ [NC]
RewriteRule ^ - [E=NOINDEXFOLLOW:true]
Header set X-Robots-Tag "noindex, follow" env=NOINDEXFOLLOW
答案 3 :(得分:0)
使用 SetEnvIfExpr 和 REDIRECT_NOINDEXFOLLOW 对我有用。
RewriteEngine On
SetEnvIfExpr "%{QUERY_STRING} =~ /bar/" NOINDEXFOLLOW
Header set X-Robots-Tag "noindex, follow" env=REDIRECT_NOINDEXFOLLOW