2016-12-29 268 views
0

我有一個SSL證書,我需要在我的網站上強制使用https。 此外,我需要刪除尾部斜槓,並從文件中隱藏.php擴展名。htaccess刪除尾部斜槓,強制HTTPS,隱藏PHP擴展

這是我迄今爲止,但它造成了過多的重定向:

RewriteEngine On 

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

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

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

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

# 404 Error Template 
ErrorDocument 404 /404.html 

我發現了一些類似的問題,但是當我試圖拼湊他們爲我自己的需要,我再次導致太多重定向!

+0

永久重定向到https最好在一個虛擬主機文件中完成:'Redirect permanent/https:// www.example.com' ...在apache 2.4 debian和osx中測試 – YvesLeBorg

回答

1

這與出現似是而非的幾個修正版本:如果

RewriteEngine On 

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

# Unless directory, remove trailing slash 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/$ /$1 [R=302,L,QSA] 

# Redirect external .php requests to extensionless url 
RewriteRule ^(.+)\.php$ /$1 [R=301,L,QSA] 

# Resolve .php file for extensionless php urls 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^([^\.]+)$ $1.php [L,QSA] 

# 404 Error Template 
ErrorDocument 404 /404.html 

不知道,已經解決您的問題。爲了確定我們需要一些特定的請求URL來生成無盡的重寫循環。

相關問題