2013-07-18 19 views
1

在我的網站mycreditstatus.co.za中,我使用.htaccess重寫和重定向一個URL到http到https,這裏是我用於.htaccess的代碼的public_html(HTTP)目錄:modRewrite RewriteCond爲某個請求的URL關閉ssl重定向

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

它工作得很好,但它重寫和重定向所有的HTTP URL到HTTPS。

問題是我的網站還對非https網站執行了一些請求,所以我不想重寫和重定向某些鏈接到https。

下面是我不想重定向的鏈接之一/改寫:

http://imupost.co.za/

我想知道我應該在public_ssl中的.htaccess寫的代碼(HTTPS)目錄因爲請求將來自那裏。

+0

你可以在'RewriteCond'下使用排除 – DevZer0

+0

我不知道如何排除網址。使用modRewrite對我來說是相當新的。抱歉。 – maikelsabido

回答

0

有在.htaccess這個代碼你的public_html目錄下:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 

RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} !^imupost\.co\.za$ [NC] 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

而且你public_ssl目錄下有在.htaccess驗證碼:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 

RewriteCond %{HTTPS} on 
RewriteCond %{HTTP_HOST} ^imupost\.co\.za$ [NC] 
RewriteRule^http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
+0

只是關於你的代碼的一個小問題,你爲什麼要在點之前添加反斜槓? –

+1

@LucasWillems:因爲這是一個正則表達式,其中點表示任何性格,所以在理論上前'imupost.co.za'可以匹配'imupost:co-za'也是我們不想要的。任何正則表達式中的點都需要逃脫。 – anubhava

+0

非常感謝您的回答! –

1

試試這個代碼:

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^imupost.co.za$ 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301] 
+0

我試過了代碼,但它仍然沒有工作。 :( – maikelsabido

+0

並嘗試這沒有第三行。你想說的「代碼,但它仍然沒有工作」?有沒有錯誤或只是沒有重定向? –

+0

好吧,我會嘗試沒有第三我的意思是,它仍然重定向到(https://)imupost.co.za – maikelsabido