2016-08-05 57 views
1

我的htaccess當前刪除了php文件擴展名和尾部的斜槓。這很好。更新htaccess以強制https並刪除.php導致重定向循環

不過,我剛剛買了一個SSL證書,並遵循these instructions強迫任何URL炫耀我新買的SSL證書(該網站處理個人和財務信息,所以這是一個很大的賣點)。

下面是我的.htaccess文件,其中https://在# NEW CODE塊中重寫。但是,當我嘗試加載網站時,我在Chrome中收到了ERR_TOO_MANY_REDIRECTS響應。

RewriteEngine On 

# NEW CODE 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://example.com/$1 [R,L] 
# END NEW CODE 

# Unless directory, remove trailing slash 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/$ https://example.com/$1 [R,L] 

# Redirect external .php requests to extensionless url 
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/ 
RewriteRule ^(.+)\.php$ https://example.com/$1 [R=301,L] 

# Resolve .php file for extensionless php urls 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

.htaccess文件不是我的forté,所以任何幫助將不勝感激!

+0

,一切工作正常沒有新的代碼,沒有重定向循環? –

+2

在這個Web服務器前面有一個負載平衡器嗎? –

+0

@DusanBajic我不知道服務器上有任何負載均衡器,並且一切工作正常(即沒有新代碼部分,http URL而不是https) – tristanojbacon

回答

0

嘗試改變:

# NEW CODE 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://example.com/$1 [R,L] 
# END NEW CODE 

到:

# NEW CODE 
RewriteCond %{HTTP:X-Forwarded-Proto} !https 
RewriteRule ^(.*)$ https://example.com/$1 [R,L] 
# END NEW CODE 
相關問題