我尝试了很多组合,但是在Apache中使用mod_rewrite无法设置以下场景:
domain.com/folder/ - 删除尾随的“/” - Result = domain.com/folder
domain.com/folder/filename.html - 删除.html并且不添加尾随“/” - Result = domain.com/folder/filename(这适用于任何非索引的文件名)
domain.com/folder/index.html - 删除文件名,扩展名和尾随“/” - Result = domain.com/folder
[edit] - 我目前所拥有的,删除.html但添加了斜杠。但现在我需要从网址(文件夹和文件)中删除所有斜杠:
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
# Add trailing slash to url
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
RewriteRule ^(.*)$ $1/ [R=301,L]
# Remove .html extension from url
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^([^\.]+)/$ $1.html
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*\.html\ HTTP/
RewriteRule ^(.*)\.html$ /$1 [R=301,L]
任何帮助都将不胜感激。