簡體   English   中英

apache2 mod_headers 不起作用

[英]apache2 mod_headers not working

問題描述:我想設置我的站點“Access-Control-Allow-Origin”,所以我在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:\\wamp\\bin\\apache\\apache2.2.22\\conf\\httpd.conf

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

E:\\wamp\\bin\\apache\\apache2.2.22\\conf\\extra\\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:\\wamp\\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:\\wamp\\www\\test\\.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

當我意識到我在此處找到的配置文件中修改了錯誤的虛擬主機時,我也遇到了這個問題並修復了它: /etc/apache2/sites-enabled/000-default.conf

當我使用具有不同端口的 VirtualHost 配置時,我正在修改默認的 VirtualHost 配置。

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

我還遇到了 Dylan Maxey 描述的錯誤,並通過禁用瀏覽器檢查器中的緩存來解決它: 在基於 Chromium 的瀏覽器中禁用緩存 這里還有一個我覺得有用的網站的鏈接: https : //enable-cors.org/server_apache.html

檢查php_info()輸出以查看是否從您的 apache 網絡服務器加載了 mod_headers。

更改可能已經發生,但您在瀏覽器中看不到更改。 如果您正在提供靜態文件,例如您嘗試更改其標題的圖像,則這尤其典型。

您甚至可以在打開 Javascript 控制台的情況下查看頁面時禁用 chrome 緩存,但仍然看不到更改生效。

您要查找的是響應代碼。 如果是 304,則服務器已識別出您的瀏覽器已具有所請求文件的有效表示,並將提供該文件。 如果是這樣,您將看不到瀏覽器最初下載該頁面后添加的標題。

要查看是否是這種情況,請將 url 更改為http://myexample.com/myimage.jpg?t=1或任何其他隨機查詢參數,看看是否有效。

就我而言,添加Header set "key" "value"不起作用。 我必須使用RequestHeader set "key" "value"ProxyPass RequestHeader set "key" "value"來發送標頭。

<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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM