如何使用.htaccess删除文件扩展名和尾部斜杠

时间:2016-08-17 15:27:56

标签: php apache .htaccess redirect mod-rewrite

我希望用于访问我网站的所有可能的网址最终都是一个没有文件扩展名且没有尾部斜杠的网址。目前我已经能够单独解决文件扩展名问题和尾部斜杠问题,但是如果使用没有文件扩展名和尾部斜杠的URL,它会将它们发送到我的404页面,例如https://mysite/news/。这最终应该是https://mysite/news并获取文件news.php,但它会重定向到我的404.这是我当前的.htaccess:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Redirect to domain without www.
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule .* https://%1%{REQUEST_URI} [R=301,L]

# 404 errors
ErrorDocument 404 /404.php

# Remove file types
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $1.php [NC,L]

# Remove trailing slashes
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s]
RewriteRule ^(.+?)/$ /$1 [R=301,L]

0 个答案:

没有答案