2015-01-08 46 views
0

由於我正在修改使用https的現有項目,因此我正在爲https請求獲取404。我沒有ssl,我也不需要https。我改變了所有的BASE_URL並鏈接到正常http.For將所有的HTTPS訪問http我改變了我的.htaccess到這 -使用mod_rewrite將'https://'請求轉換爲'http://'

Options +FollowSymlinks 
Options -Indexes 

### Url rewrite ### 

RewriteOptions inherit 
RewriteEngine on 
RewriteOptions MaxRedirects=5 

RewriteCond %{HTTPS} on 
RewriteCond %{REQUEST_URI} !(static|auth|register|secure|js|css|img) 
RewriteRule ^(.*)$ http://%{SERVER_NAME}%{REQUEST_URI} [R=301] 

#Other redirects 
RewriteRule \.json$ notfound.php [L,QSA] 
RewriteRule ^viz/apps/.+\.js$ notfound.php [L,QSA] 
RewriteRule ^viz/index.php - [L,QSA] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^viz/(.*)$ viz/index.php?/$1 [L,QSA] 

ErrorDocument 404 notfound 

<IfModule mod_headers.c> 
    Header set Access-Control-Allow-Origin "*" 
</IfModule> 

但它無法正常工作。我應該怎麼做才能將圖像,CSS,js的所有https請求轉換爲普通的http請求。請幫忙。提前致謝。

這是針對HTTPS的以前的.htaccess像這個 -

Options +FollowSymlinks 
Options -Indexes 

### Url rewrite ### 

RewriteOptions inherit 
DirectorySlash Off 
RewriteEngine on 
RewriteOptions MaxRedirects=5 

#Everything to HTTPS 
RewriteCond %{HTTPS} !^on$ 
RewriteCond %{HTTP_HOST} !^localhost$ 
RewriteCond %{QUERY_STRING} !^/insecure/.* 
RewriteCond %{REQUEST_URI} !^/viz/insecure/.* 
#RewriteCond %{REQUEST_URI} !^/viz/index.php/insecure/.* 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

#Other redirects 
RewriteRule \.json$ notfound.php [L,QSA] 
RewriteRule ^viz/apps/.+\.js$ notfound.php [L,QSA] 
RewriteRule ^viz/index.php - [L,QSA] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^viz/(.*)$ viz/index.php?/$1 [L,QSA] 

ErrorDocument 404 notfound 
<IfModule mod_headers.c> 
    Header set Access-Control-Allow-Origin "*" 
</IfModule> 
+0

如果您不支持HTTPS,您希望客戶如何連接到您並首先獲得服務器的響應? – Brad

+0

這是服務器端的問題。您,客戶端,不能更改服務器。 –

+0

我正在修改現有項目。它是爲https創建的。但現在我不需要它。所以我清除了所有base_url和鏈接到正常的http。仍然是https。我改變了.htaccess但沒有幫助。 – Sujit

回答

0

如果您的服務器不能夠建立在HTTPS連接的,這是不可能的,當他們請求頁面重定向客戶端通過https。它是需要發送這個頭的服務器,但是由於沒有建立連接,它也不能發送頭。

即使您的服務器能夠提供https服務,添加https-http規則也無法解決您的問題。您最終將通過Apache將https重定向到http,並通過您的應用程序從http重定向到https。你將需要修復你的應用程序來解決這個問題。