htaccess excerpts and notes

Here are some excerpts from my .htaccess files. I'm posting these because I often need to remember the syntax of these commands and it's easier to look at the commands here on my blog than to ssh to my DreamHost or Verio web-hosting account and look at them there. Also, I hope these excerpts and notes will be useful to others.

Note: In the code below, a line that begins with a single hash (#) is code that is commented out and a line that begins with two hashes (##) is a comment about the code.

Used Everywhere
## Block viewing of .htaccess files
<Files .htaccess>
order allow,deny
deny from all
</Files>

## Do not let IP address xxx.xxx.xxx.xx access (GET) the site
## Uncomment these 5 lines if someone or something is abusing the site
## Note: 'GET' can be replaced by 'GET POST PUT'
# <Limit GET>
# order allow,deny
# allow from all
# deny from xxx.xxx.xxx.xx
# </Limit>

## If a directory is requested, do not list the files in the directory
Options -Indexes

## Next is sometimes needed, but might already be set in the server configuration
# AddDefaultCharset UTF-8

## Next is needed if you use Rewrite rules
## (examples of RewriteCond and RewriteRule are in the sections below)
RewriteEngine On

## Next Rewrite option is often already set in the server configuration
## Uncomment if Rewrite rules don't work
# Options +FollowSymLinks


The next sections include examples that use the Apache mod_rewrite module. If they seem confusing, it's because they are! As Brian Behlendorf, one of the primary developers of the Apache web server, said:
The great thing about mod_rewrite is it gives you all the configurability and flexibility of Sendmail. The downside to mod_rewrite is that it gives you all the configurability and flexibility of Sendmail.
This quote, along with some other good quotes, is on the Apache Documentation mod_rewrite page.


Used at Deflexion.com
## Specify the MIME type of unknown file extensions
## This is needed because I use extensionless URLs at Deflexion.com
## If default is HTML, use:
# DefaultType text/html
## If default is PHP, use:
DefaultType application/x-httpd-php

## If URL points to a directory, serve the first of these files that exist
DirectoryIndex index index.php index.html index.atom

## PHP include files are located in this directory
php_value include_path "/path/i/do/not/want/to/publish/on/my/blog/_shared"

## If 'http://deflexion.com/index' is requested, remove 'index'
## The goal is to get people & machines to link to 1 & only 1 URL for this page
## Details at Wikipedia's URL normalization (aka URL canonicalization)
## Another examples of URL canonicalization is in the Infinite Ink section below
## Note: '^[A-Z]{3,9}\ /' matches GET POST PROPFIND etc, followed by space slash
## This RewriteCond avoids infinite loops
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\ HTTP/
RewriteRule ^index$ http://deflexion.com/ [R=301,L]

## Redirect this URL-path to the current URL
Redirect permanent /messaging/blogs/ http://deflexion.com/2004/01/just-what-is-blog-atomizing

## For details about these RedirectMatch lines, see
## Twitter, TinyURL, Dots, Dashes, and My htaccess File
## Note: The order of these 5 RedirectMatch lines matters!
RedirectMatch 301 ^/(2008/../[^.]*)\.([^.]*)\.([^.]*)\.([^.]*)\.([^.]*)\.([^.]*)$ http://deflexion.com/$1-$2-$3-$4-$5-$6
RedirectMatch 301 ^/(2008/../[^.]*)\.([^.]*)\.([^.]*)\.([^.]*)\.([^.]*)$ http://deflexion.com/$1-$2-$3-$4-$5
RedirectMatch 301 ^/(2008/../[^.]*)\.([^.]*)\.([^.]*)\.([^.]*)$ http://deflexion.com/$1-$2-$3-$4
RedirectMatch 301 ^/(2008/../[^.]*)\.([^.]*)\.([^.]*)$ http://deflexion.com/$1-$2-$3
RedirectMatch 301 ^/(2008/../[^.]*)\.([^.]*)$ http://deflexion.com/$1-$2
^^^
'301' is equivalent to 'permanent'


Used at Infinite Ink
## If the requested hostname is anything other than www.ii.com,
## rewrite it to www.ii.com
RewriteCond %{HTTP_HOST} !^www.ii.com$
RewriteRule (.*) http://www.ii.com/$1 [R=301]

## Remove trailing 'index.html' from requested URLs
## See Note above about the regular expression '^[A-Z](3,9}\ /'
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*index\.html\ HTTP/
RewriteRule ^(([^/]+/)*)index\.html$ http://www.ii.com/$1 [R=301,L]

## Redirect this local URL-path to the current URL
Redirect permanent /communicate http://deflexion.com/2005/12/make-meta-comment


Comments, suggestions, and questions are welcome!

Labels: , , , , , , , ,


Hashtag: #htaccess-exc [?]

Post & Read Comments (located elsewhere)

 

 

Post & Read Comments (located here)

Post a Comment


 

 

Links to this page

Create a Link

 

 

Each item © Nancy McGough
Each comment © the author of the comment
Deflexion.com web site hosted by DreamHost.com
deflexions powered by Delicious · reflexions powered by Blogger
More deflexions & reflexions, & feeds available via the sidebar top & bottom

[link] For bookmarks & links, please use this page's permalink [link]