小编Tom*_*rts的帖子

自定义标头 (mod_headers) 未与 mod_rewrite 结合显示

我有一个虚拟主机,有多个域名链接到它。当向一个特定域名发出请求时,我尝试发送额外的标头。

这就是我正在做的事情(在虚拟主机和 .htaccess 中都尝试过,结果是相同的)

SetEnvIf HOST thishost THETAG=noindex
Header set X-Robots-Tag "%{THETAG}e" env=THETAG
Header set X-Robots-Test "Yes"
Run Code Online (Sandbox Code Playgroud)

所以基本上,X-Robots-Test 标头应该始终存在。X-Robots-Tag 仅应在设置了 THETAG 标头后才出现,而该标头仅在主机标头包含“thishost”时才设置。

RewriteRule 看起来像这样,所以基本上是从 page1 到 page2 的 301 重定向

RewriteRule page1 page2 [L,R=301]
Run Code Online (Sandbox Code Playgroud)

当向 page2 发出请求时,标头会正确显示,但当向 page1 发出请求(并由 mod_rewrite 重定向)时,标头不存在(甚至不存在测试标头)。

当从 PHP 脚本而不是 mod_rewrite 启动重定向时,它确实显示标头,因此我认为问题是 mod_rewrite 优先于 mod_headers。有没有什么办法解决这一问题?

mod-rewrite http-headers apache-2.2

5
推荐指数
1
解决办法
2191
查看次数

标签 统计

apache-2.2 ×1

http-headers ×1

mod-rewrite ×1