apache2 mod_headers无效

时间:2013-10-13 03:44:57

标签: apache mod-headers

问题描述:我想设置我的网站“Access-Control-Allow-Origin”,所以我在apache的配置中设置它(几乎在任何地方),但它不起作用。我还设置了其他标题用于测试,但它仍然无法正常工作。

Apache版本: 2.2.22

Apache模块: http://www.anwcl.com/test/show_modules.php

我的目标网址:

http://www.anwcl.com/test/test_only_div.html

它与我的本地文件相关联:

e:\wamp\www\test\test_only_div.html

这是我的apache的配置:

E:\瓦帕\ BIN \阿帕奇\ apache2.2.22 \ CONF \ httpd.conf中

...
LoadModule headers_module modules/mod_headers.so
...
Include conf/extra/httpd-vhosts.conf
...

E:\瓦帕\ BIN \阿帕奇\ apache2.2.22 \ CONF \额外\的httpd-vhosts.conf

NameVirtualHost *:80
<VirtualHost *:80>
    Header add Access-Control-Allow-Origin "*"
    Header echo ^TS
    Header add MyHeader "Hello Joe. It took %D microseconds for Apache to serve this request."
    ServerAdmin xxx@gmail.com
    DocumentRoot "E:/wamp/www/"
    ServerName www.anwcl.com
    ErrorLog "logs/xxx.log"
    CustomLog "logs/xxx.log" common
    <Directory "E:/wamp/www/">
        Header add Access-Control-Allow-Origin "*"
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

E:\瓦帕\ WWW \ htaccess的

Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"

E:\瓦帕\万维网\测试\ htaccess的

Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"

这是Wireshark的上限,没有预期的标题:

http://www.anwcl.com/question/apache-mod-headers-not-working.jpg
http://www.anwcl.com/question/apache-mod-headers-not-working-304.jpg

4 个答案:

答案 0 :(得分:0)

检查php_info()的输出,看看你的apache网络服务器是否加载了mod_headers。

答案 1 :(得分:0)

可能发生了更改,您没有在浏览器中看到更改。如果您正在提供静态文件,例如您尝试更改标题的图像,则这种情况尤其典型。

在查看打开Javascript控制台的页面时,您甚至可以使用chrome禁用缓存,但仍然看不到更改生效。

您想要寻找的是响应代码。如果它是304,则服务器已识别出您的浏览器已具有所请求文件的有效表示,并将提供该文件。如果是,则在浏览器最初下载该页面后,您将看不到添加的标题。

要查看是否是这种情况,请将网址更改为http://myexample.com/myimage.jpg?t=1或任何其他随机查询参数,看看是否有效。

答案 2 :(得分:0)

当我意识到自己在配置文件/etc/apache2/sites-enabled/000-default.conf中修改了错误的虚拟主机时,也遇到了此问题,并进行了修复。

我在使用具有不同端口的虚拟主机时修改了默认的VirtualHost配置。

<VirtualHost *:6000>
        Header set Access-Control-Allow-Origin "*"
</VirtualHost>

我还遇到了Dylan Maxey描述的错误,并通过在浏览器检查器中禁用了缓存来解决了这个错误: Disabling cache in Chromium based browser 这也是指向我认为有帮助的网站的链接: https://enable-cors.org/server_apache.html

答案 3 :(得分:0)

就我而言,添加Header set "key" "value"无效。我必须为RequestHeader set "key" "value"使用ProxyPass来发送标题。

<VirtualHost *:443>
  ServerName myserver.com
  ServerAlias www.myserver.com

  ProxyRequests Off
  ProxyPreserveHost On
  ProxyPass / http://127.0.0.1:8081/
  ProxyPassReverse / http://127.0.0.1:8081/
  RequestHeader set "X-Forwarded-Proto" "https"
  #
  # Setup SSL
  #
  # SSLProxyEngine on
  SSLEngine on
  SSLCertificateFile location-to-certificate.crt
  SSLCertificateKeyFile location-to-private.key
  SSLCertificateChainFile location-to-ca_bundle.crt
</VirtualHost>