需要像这样添加.htaccess条件:
if (page == '/admin') {
Header add Test "test"
}
这不起作用:
<IfModule mod_headers.c>
<If "%{REQUEST_URI} == '/'">
Header add Test "test"
</If>
</IfModule>
但这适用于所有页面(逻辑上):
<IfModule mod_headers.c>
Header add Test "test"
</IfModule>
我知道env = [!] varname,但不知道在我的情况下如何使用..
我会很高兴有任何帮助!
答案 0 :(得分:0)
指令
<IfModule mod_headers.c>
<If "%{REQUEST_URI} == '/admin'">
Header add Test test
</If>
</IfModule>
是正确的,标题将被添加,如果请求未被修改。
例如,如果你有
<IfModule mod_headers.c>
<If "%{REQUEST_URI} == '/admin'">
Header add Test test
</If>
</IfModule>
RewriteEngine on
RewriteRule ^admin$ /index.php [L]
将不会设置标头,因为请求已被修改,将被识别为/index.php
。要在响应上设置标题,必须将其更改为
<IfModule mod_headers.c>
<If "%{REQUEST_URI} == '/index.php'">
Header add Test test
</If>
</IfModule>
RewriteEngine on
RewriteRule ^admin$ /index.php [L]
现在,请求/admin
将被重写为/index.php
,REQUEST_URI
将被处理为&#34; /index.php"并且在将响应发送到客户端之前设置标头,请参阅mod_headers - Early and Late Processing
正常模式是迟到的,当在运行内容生成器和响应标头之前立即设置请求标头时,就像在线路上发送响应一样。始终在操作服务器中使用延迟模式。
因此,根据您的环境中处理和修改请求的方式,您还必须将条件<If "%{REQUEST_URI} == '...'">
修改为适合您环境的任何内容。