2017-08-16 73 views
1

我的網站的.htaccess文件有問題。我想迫使人們使用https我的網站,所以我已經加入這個我已有的.htaccess:強制Https重寫規則.htaccess給出403錯誤

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

最終結果:

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


RewriteEngine On 

RewriteRule ^([a-zA-Z0-9_-]+)(|/)$ index.php?url=$1 
RewriteRule ^news/([a-zA-Z0-9_-]+)(|/)$ index.php?url=news&id=$1 
RewriteRule ^home/([a-zA-Z0-9_-]+)(|/)$ index.php?url=home&user=$1 
RewriteRule ^swf/plex-imaging/badge/([a-zA-Z0-9_-]+)(|/)$ swf/plex- 
imaging/badge.php?badge=$1 
RewriteRule ^register/([a-zA-Z0-9_-]+)(|/)$ index.php? 
url=register&userref=$1 
RewriteRule ^newpassword/([a-zA-Z0-9_-]+)(|/)$ index.php? 
url=newpassword&key=$1 

但現在我得到一個403錯誤:

You don't have permission to access/on this server.

回答

0

我通過重新加載我的ssl證書來解決它!

0

試試這個

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

RewriteRule ^([a-zA-Z0-9_-]+)(|/)$ index.php?url=$1 [L] 
RewriteRule ^news/([a-zA-Z0-9_-]+)(|/)$ index.php?url=news&id=$1 [L] 
RewriteRule ^home/([a-zA-Z0-9_-]+)(|/)$ index.php?url=home&user=$1 [L] 
RewriteRule ^swf/plex-imaging/badge/([a-zA-Z0-9_-]+)(|/)$ swf/plex-imaging/badge.php?badge=$1 [L] 
RewriteRule ^register/([a-zA-Z0-9_-]+)(|/)$ index.php?url=register&userref=$1 [L] 
RewriteRule ^newpassword/([a-zA-Z0-9_-]+)(|/)$ index.php?url=newpassword&key=$1 [L] 

我已經爲您的HTTPS重定向更新了RewriteRule,以便它發送301的HTTP狀態代碼並執行重定向而不是重寫。如果沒有flag R=301,服務器只會重寫連接,就好像用戶通過新URL連接一樣(這就是完成URL的方式)。我還添加了L flag來表示每個規則不應該在其之後處理其他規則。

額外RewriteEngine On也被取出,但這可能不是您的問題的原因。

我所做的最後一次更新是對幾個RewriteRules,我所做的只是確保它們在同一行上,因爲它們已被分解爲兩個。

你可以閱讀更多關於Apache的重寫標記here

+0

不,它可悲的是不工作。 (感謝您的幫助,雖然)。我要問我的虛擬主機這件事。 (或者你有另一個想法?)。再次非常感謝您的幫助。 –

+0

出於好奇,它完成了https重定向嗎?你知道Web服務器是否正確安裝了HTTPS?在Apache中,它通常需要2個不同的虛擬主機(一個用於端口80,一個用於443)。如果重定向完成,那可能是你的問題。 – Charles

+0

我遵循我的網站主持人指南,瞭解如何在我的網站上啓用https,所以我製作了讓我們加密的證書等等。那麼我不得不添加重定向規則。強制https上的用戶。 –