htaccess删除尾部斜杠,强制HTTPS,隐藏PHP扩展

问题描述:

我有一个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

这与出现似是而非的几个修正版本:如果

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来生成无尽的重写循环。