【发布时间】:2018-01-23 19:44:11
【问题描述】:
我正在尝试创建一个 htaccess 文件,它将所有可能的 URL 重定向到正确的格式。
我希望所有网址都采用以下格式:
https://www.mywebsite.co.uk/mypage
我所有的网站页面都是filename.php
我目前的htaccess代码如下:
RewriteEngine On
RewriteBase /
# Force WWW prefix
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# Force SSL
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]
# Remove .php extension
RewriteCond %{THE_REQUEST} ^GET\ /[^?\s]+\.php
RewriteRule (.*)\.php$ /$1/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/(.+)/$
RewriteCond %{DOCUMENT_ROOT}/%1.php -f
RewriteRule ^(.*)/$ $1.php [L]
# Force trailing slash
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .*[^/]$ $0/ [L,R=301]
这几乎适用于所有情况,但如果我点击这样的链接:
https://www.mywebsite.co.uk/mypage
这应该会自动重定向到:
https://www.mywebsite.co.uk/mypage/
但它不会重定向,也不会添加尾部斜杠。
如何添加到我当前的 htaccess 文件中以捕捉这种情况?
【问题讨论】:
标签: php apache .htaccess redirect mod-rewrite