« Set Environment Variables According To URLMod_Rewrite Basic Examples »
A lot of commonly used htaccess code snippets for use with the Apache Web Server.
Note 1: You may not need Options FollowSymlinks as it’s commonly set by serverwide config file, already.
Note 2: You need RewriteEngine On only once in the .htaccess file.
If you have ‘www’ dropping from the URL or asked twice for the password, this is the fix.
It happens when you enter the URL of a directory without trailing slash and your domain name contains ‘www’.
ex. http://www.example.com/subdir <== No slash at the end.
Generally, you should ALWAYS put a slash after a directory name.
But some robots and links don’t follow this practice, and you may want to use this fix.
In short, you only need this code if you use ‘www.’ for your domain name.
I prefer URL without ‘www’, these days, as it’s shorter and easier.
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^/*(.+/)?([^.]*[^/])$ http://%{HTTP_HOST}/$1$2/ [L,R=301]
#If you want to cover both http and https:
Options +FollowSymlinks
RewriteEngine On
RewriteCond s%{HTTPS} ^((s)on|s.*)$ [NC]
RewriteRule ^/*(.+/)?([^.]*[^/])$ http%2://%{HTTP_HOST}/$1$2/ [L,R=301]
#Note: These codes are very efficient compared to the code
#with '-d' check, but they won't work with directories that have a dot (period) in it.
# (ex. /a_directory.name/)
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www.|$) [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
#If you want to cover both http and https:
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{HTTP_HOST}//s%{HTTPS} ^([^.]{4,}|[^w.]?[^.][^w.]?[^.]?[^w.]?)..*//((s)on|s.*) [NC]
RewriteRule ^ http%3://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
It may look complicated, but this code reduce the wasteful redirect to your site.
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_URI}\/%{HTTP_HOST}/www. ^/+(.+/)?[^.]*[^/]\(/)(([^.]{4,}|[^w.]?[^.][^w.]?[^.]?[^w.]?)..+/(www.)|.*)$ [OR,NC]
RewriteCond %{HTTP_HOST}/www. ^(/)?(#)?(/)?(([^.]{4,}|[^w.]?[^.][^w.]?[^.]?[^w.]?)..+/(www.))$ [NC]
RewriteRule ^ http://%6%{HTTP_HOST}%{REQUEST_URI}%2 [L,R=301]
#If you want to cover both http and https:
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_URI}\/%{HTTP_HOST}/www.//s%{HTTPS}
^/+(.+/)?[^.]*[^/]\(/)(([^.]{4,}|[^w.]?[^.][^w.]?[^.]?[^w.]?)..+/(www.)|.*)//((s)on|s.*)$ [OR,NC]
RewriteCond %{HTTP_HOST}/www.//s%{HTTPS}
^(/)?(/)?(([^.]{4,}|[^w.]?[^.][^w.]?[^.]?[^w.]?)..+/(www.))//((s)on|s.*)$ [NC]
RewriteRule ^ http%7://%5%{HTTP_HOST}%{REQUEST_URI}%2 [L,R=301]
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC] RewriteRule ^ http://%1%{REQUEST_URI} [L,R=301]
#If you want to cover both http and https:
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{HTTP_HOST}//s%{HTTPS} ^www.(.*)//((s)on|s.*)$ [NC]
RewriteRule ^ http%3://%1%{REQUEST_URI} [L,R=301]
Wasp Barcode Scanners – Wasp is a leading manufacturer of reliable, performance-packed barcode scanners for small to medium business.
« Set Environment Variables According To URL
Mod_Rewrite Basic Examples »
Please consider donating to support active development of the free software and articles here.![]()
The power of the Web is in its universality. Access by everyone regardless of disability is an essential aspect. Tim Berners-Lee
It's very simple - you read the protocol and write the code. -Bill Joy
HTML | DCMI | GRDDL | XOXO | XDMP | XFN | DOM | XML | XHTML 1.1 Strict | CSS 2.1 | W3C | TLDP | WAI | DISA | ICSI | GIAC | SANS RR | GHOST | DEFCON | NIST | DHS CYBER | NIST | .:: Phrack Magazine ::.
↑ TOPExcept where otherwise noted, content on this site is licensed under a Creative Commons Attribution 3.0 License, just credit with a link.
This site is not supported or endorsed by The Apache Software Foundation (ASF). All software and documentation produced by The ASF is licensed. "Apache" is a trademark of The ASF. HTTPD based on NCSA HTTPd
This is great info, but why can I not find on the internet nor make it work myself to REMOVE trailing slashes? I have a .htaccess rewrite that makes nice short URLs, removes the www, and I want it to remove trailing slashes too.