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
我发现了一些类似的问题,但是当我试图拼凑他们为我自己的需要,我再次导致太多重定向!
答
这与出现似是而非的几个修正版本:如果
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来生成无尽的重写循环。
永久重定向到https最好在一个虚拟主机文件中完成:'Redirect permanent/https:// www.example.com' ...在apache 2.4 debian和osx中测试 – YvesLeBorg