I have the following rule in my current .htaccess file to redirect /videos/login/
requests to /videos/login.php
RewriteRule login/ /videos/login.php
This works fine if I am access login page using http://mysite.com/videos/login/
but when I am trying to access the same page using http://mysite.com/videos/login
(without ending slash) then it gives me "404 page not found" error.
Please tell me what will be the correct rule of .htaccess file so that any request for http://mysite.com/videos/login/
or http://mysite.com/videos/login
will point to the same /videos/login.php page.
Thanks
Just make the trailing slash optional:
RewriteRule ^videos/login/?$ /videos/login.php
But you should better use just one variant (with or without trailing slash) and redirect one to the other:
# add trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .*[^/]$ /$0/ [L,R=301]
# remove trailing slash
RewriteRule (.*)/$ /$1 [L,R=301]
This work fine for me:
Rewriterule ^login(/|)$ /videos/login.php
Using mod_rewrite
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/videos/login/?$
RewriteRule (.*) /videos/login.php [L,R=301]
redirect 301 /videos/login/index.html http://yoursite.com/videos/login.php
The server will change the address http://mysite.com/videos/login/ and http://mysite.com/videos/login both to http://mysite.com/videos/login/index.html, based on the configuration but this is default. Before it encounters a 404 this address is redirected to the new one. At least this works at my site.
Had to use pre because the site let's me post only one hyperlink :/