1

I want to remove the last trailing slash of a URL. For example: I want to http://localhost/mysite/page/ rewrite to http://localhost/mysite/page.

I'm using this code on my localhost .htaccess.

Options +FollowSymLinks
RewriteEngine   on
RewriteRule ^([a-zA-Z0-9_-]+)/$ $1 [R=301,L]
RewriteRule ^([a-zA-Z0-9_-]+)$ web.php?page=$1

If I write on my browser http://localhost/mysite/index, it shows what I want. But if I write http://localhost/mysite/index/ it tells me "not found" and "the requested URL was not found on this server". I'm using UniServer on Windows 8.

nickgrim
  • 4,592
  • 1
  • 21
  • 28
Tes
  • 11

2 Answers2

1

Try this instead:

# Remove trailing slash if not an existing directory
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ $1 [L,R=301]

# Rewrite to use web.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ web.php?page=$1 [L]

You may not need to change the second rule if it's already working fine.

Grant
  • 18,125
  • 14
  • 75
  • 104
0

It worked adding this line

RewriteRule ^(.*)/$ /mysite/$1 [R,L]
Tes
  • 11