我想为所有页面提供漂亮的规范URL:无文件扩展名,无斜杠。我也不想允许浏览目录。
以下内容可以完成这项工作:
# Enable rewrites
RewriteEngine on
RewriteBase /
DirectorySlash off
# -Indexes: No open dirs
# +MultiViews: accept requests with and without file extension
Options -Indexes +MultiViews
# Force www
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301,NC]
# Remove trailing slashes
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=302]
# Remove html file extension -> Canonical URLs
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^&\ ]+).html
RewriteRule .* /%1? [R=302,L]
问题是,我有一个包含博客帖子/blog
的目录,并在/blog.html
处添加了存档页面。由于.htaccess中的规则组合,服务器不允许访问该页面。相反,它返回:
禁止访问您无权访问此服务器上的/ blog。
以下是尝试浏览目录时显示的消息。是否可以: