重啟后,Apache的跨域配置沒有生效?
1、配置Apache服務器后,本地測試,頁面訪問b.com域名是可以的。但是跨域的配置卻沒有生效。
2、相關的header模塊、rewrite模塊都打開了。httpd-2.3.33的Apache虛擬主機配置文件如下:
<VirtualHost *:80>
? ? ServerName b.com
? ? ErrorLog "logs/b.com-error.log"
? ? CustomLog "logs/b.com-access.log" common
ProxyPass /http://localhost:8080/
#把請求頭的origin值返回到Access-Control-Allow-Origin字段
Header always set Access-Control-Allow-Origin "expr=%{req:origin}"
#把請求頭的Access-Control-Request-Headers值返回到Access-Control-Allow-Headers字段
Header always set Access-Control-Allow-Headers "expr=%{req:Access-Control-Request-Headers}"
Header always set Access-Control-Allow-Methods "*"
Header always set Access-Control-Allow-Credentials "true"
Header always set Access-Control-Max-Age "3600"
#處理預檢命令OPTIONS,直接返回204
RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ "/" [R=204,L]
</VirtualHost>
2019-06-14
ProxyPass /?http://localhost:8080/?,第一個“/” 兩邊都有空格,按照老師的配置,在某些 apache 版本不會啟動成功,發生閃退現象,原因是某些功能還沒開啟。用命令行的方式,進入到apache的bin目錄,配置完文件后,需要進行配置是否正確的檢驗,終端輸入:httpd.exe -t,就會得到報錯的閃退原因,我用的時apache2.4.39,發現Header和RewriteEngine功能未開啟,需要在httpd.conf中找到LoadModule headers_module modules/mod_headers.so和LoadModule rewrite_module modules/mod_rewrite.so,把這兩行的#去掉,再進行配置文件是否正確的檢查,發現配置文件已經正確,并且Apache服務可以正常啟動。然后就可以實現老師所說的跨域請求功能了。
2018-12-16
ProxyPass /http://localhost:8080/?,貌似第一個“/” 兩邊都有空格= =
2018-04-06
參考課程中Apache的配置