2012-04-27 72 views
2

我有一個目錄用於整個域,我想要強制https,即「/ docs」。在/ docs文件夾,我有以下htaccess文件:如何使用htaccess強制使用http- NOT https

RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

這就迫使HTTPS在/ docs目錄,這就是我想要它做的一切。我遇到的問題是試圖強制刪除https回到http我的網站的所有其他地區。在該網站的根文件夾(這是運行WordPress的),我有以下htaccess文件:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

# END WordPress 

RewriteCond %{HTTPS} on 
RewriteCond %{REQUEST_URI} !^/docs/?.*$ 
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L] 

不幸的是,這是行不通的。我仍然可以通過https訪問我網站的其他區域。

我需要改變以使其正常工作?

回答

-1

爲什麼你需要恢復到http?如果您擁有正確的SSL證書,則不妨保證您的訪問安全。除非您擔心繫統上的負載。

+1

系統負載,一些圖像和JavaScript將被混合HTTP/HTTPS等 – JROB 2012-04-27 18:40:53

+0

使用相對URI,以避免與混合的安全級別(問題'// example.com /富/ bar.jpeg'如果你需要改變主機)。 – Quentin 2012-04-27 18:45:41

1

嘗試用於wordpress的Force非SSL插件。

+0

如果SSL的目錄位於WordPress目錄之外,這樣做會起作用嗎? – 2012-09-20 06:49:15

10

由於接受的答案實際上並沒有回答這個問題,我想我會把我的解決方案發布到這裏。添加到您的.htaccess文件強制HTTP而不是HTTPS的:

# BEGIN Force HTTP 
RewriteEngine On 
RewriteCond %{SERVER_PORT} 443 
RewriteRule ^(.*)$ http://yourdomain.com/$1 [R=301,L] 
# END Force HTTP 
+1

感謝rog回答所問的問題。 ;) – 2017-01-13 15:52:17

+1

如果HTTPS版本沒有有效的證書,則這不起作用。 (因爲瀏覽器的證書警報總是在Apache重寫之前出現。) – 2017-02-20 08:36:18

+0

@TamásBolvári有效的問題,但是問題提到他們已經獲得了有效的證書。 – rog 2017-03-06 04:06:18