[英]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
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"
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 描述的錯誤,並通過禁用瀏覽器檢查器中的緩存來解決它: 這里還有一個我覺得有用的網站的鏈接: 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.