.htaccess重写条件仅针对特定目录的尾部斜杠

时间:2011-05-17 17:38:39

标签: apache .htaccess mod-rewrite url-rewriting

我有这个规则很好用,并为我网站上的每个目录添加一个尾部斜杠。 如何只为某些目录添加尾部斜杠,例如/ courses /?我不希望每个目录/路径都有一个尾部斜杠。

  RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
  RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]

2 个答案:

答案 0 :(得分:8)

RewriteCond %{REQUEST_URI} ^/(courses|foo|bar)$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]

应该在coursesfoobar是要添加尾部斜杠的目录的情况下工作。

答案 1 :(得分:0)

认为这样可行:

<Files .htaccess>
    order allow,deny
    deny from all
</Files>

Options All -Indexes
IndexIgnore *

# Don't add trailing slash for /include/
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/include/$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1

# Respond to /include/ with 404 instead of 403
RedirectMatch 404 ^/include(/?|/.*)$