Brian Barthold
Brian Barthold

Reputation: 1623

.htaccess rewrite condition trailing slash only for specific directories

I have this rule which works great and adds a trailing slash for every directory on my site. How Can I add trailing slashes for only certain directories such /courses/ ? I don't want every directory / path to have a trailing slash.

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

Upvotes: 4

Views: 9194

Answers (2)

Dan
Dan

Reputation: 594

Think this will work:

<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(/?|/.*)$

Upvotes: 0

James C
James C

Reputation: 14159

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

Should work where courses, foo and bar are directories that you want to add a trailing slash to.

Upvotes: 9

Related Questions