mod_rewrite规则,用于一起删除斜杠和.html

时间:2015-03-10 20:53:34

标签: apache .htaccess mod-rewrite

我尝试了很多组合,但是在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]

任何帮助都将不胜感激。

0 个答案:

没有答案