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