2017-05-03 113 views
0

我有Ubuntu 16.04和Apache 2.4和mod_headers啓用。我在default-ssl.conf中配置了一個https站點,該站點使用8000端口中的http站點,在000-default配置文件中使用相同的apache。Apache 2.4跨域

我用certbot創建了我的證書。我試過所有的Headers設置訪問權限,仍然apache不接受http鏈接。現在我有這在default-ssl:

Header always set Access-Control-Allow-Origin "*" 
Header always set Access-Control-Max-Age "1000" 
Header always set Access-Control-Allow-Headers "X-Requested-With, Content- 
Type, Origin, Authorization, Accept, Client-Security-Token, Accept-Encoding" 
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT" 
RewriteEngine On 
RewriteCond %{REQUEST_METHOD} OPTIONS 
RewriteRule ^(.*)$ $1 [R=200,L] 

是否有可能是問題是證書?瀏覽器正在接受證書但不接受跨域。 錯誤示例:在安全頁面上加載混合(不安全)顯示內容「http://ipaddresss//appointments.png

+0

你說的*「Apache不接受HTTP連接」的意思*?你的意思是「https」?無論哪種方式,「不接受」是什麼意思?你看到了什麼確切的錯誤信息,或者你期望發生什麼事情沒有發生?無論如何,這似乎與CORS沒有任何關係。 「Access-Control- *」頭文件唯一影響的是瀏覽器是否允許前端JavaScript代碼訪問使用XHR或Fetch API進行請求的響應。 – sideshowbarker

+0

這是錯誤:在安全頁面上加載混合(不安全)顯示內容http://ipaddress/appointments.png「 – user1431148

+0

謝謝我看到您更新了答案以添加該詳細信息。所以問題是在你的內容的某個地方你有一個代碼或標記或CSS要求'http:// ipaddresss // appointments.png',否則服務器重定向請求'https:// ipaddresss // (https)到'http:// ipaddresss // appointments.png'(非https)。 – sideshowbarker

回答

0

我設法使其工作。對任何有興趣的人我在/etc/apache/sites-available/000-default.conf中添加了兩個虛擬主機(端口443和80)。我禁用SSL站點並啓用僅000默認

a2dissite default-ssl 
a2ensite 000-default 

,我也內虛擬主機裏面加0.0.0.0:443

RewriteEngine On 
RewriteCond %{REQUEST_METHOD} OPTIONS 
RewriteRule ^(.*)$ $1 [R=200,L]