68 the jackol’s den » htaccess Cheatsheet ul.addtoany_list a img{filter:alpha(opacity=70)} ul.addtoany_list a:hover img,ul.addtoany_list a.addtoany_share_save img{filter:alpha(opacity=100)} //0?targetURL:location.href); //Strip out any anchors var apos=loc.indexOf('#'); loc=encodeURIComponent((apos>0?loc.substring(0,apos):loc)); //Get Title and encode var title = encodeURIComponent(document.title); var url=''; //Redirect to service if(service=='digg') url='http://www.digg.com/submit?phase=2&url=' + loc + '&title=' + title; else if(service=='newsvine') url='http://www.newsvine.com/_tools/seed&save?u=' + loc + '&h=' + title; else if(service=='furl') url='http://www.furl.net/storeIt.jsp?p=1&u='+ loc +'&t=' + title; else if(service=='blinklist') url='http://www.blinklist.com/index.php?Action=Blink/addblink.php&Description=&Url=' + loc + '&Title=' + title; else url='http://del.icio.us/post?v=2&url=' + loc + '&title=' + title; location.href = url; return false; } //]]> /* Begin Contact Form CSS */ .contactform { position: static; overflow: hidden; width: 95%; } .contactleft { width: 25%; white-space: pre; text-align: right; clear: both; float: left; display: inline; padding: 4px; margin: 5px 0; } .contactright { width: 70%; text-align: left; float: right; display: inline; padding: 4px; margin: 5px 0; } .contacterror { border: 1px solid #ff0000; } .contactsubmit { } /* End Contact Form CSS */ the jackol’s den01100010 01101100 01100101 01101000 Home Contact Me htaccess Cheatsheet Subscribe htaccess Cheatsheet Here is a simple cheatsheet for the .htaccess file: Enable Directory Browsing Options +Indexes ## block a few types of files from showing IndexIgnore *.wmv *.mp4 *.avi Disable Directory Browsing Options All -Indexes Customize Error Messages ErrorDocument 403 /forbidden.html ErrorDocument 404 /notfound.html ErrorDocument 500 /servererror.html Get SSI working with HTML/SHTML AddType text/html .html AddType text/html .shtml AddHandler server-parsed .html AddHandler server-parsed .shtml # AddHandler server-parsed .htm Change Default Page (order is followed!) DirectoryIndex myhome.htm index.htm index.php Block Users from accessing the site <limit GET POST PUT> order deny,allow deny from 202.54.122.33 deny from 8.70.44.53 deny from .spammers.com allow from all </limit> Allow only LAN users order deny,allow deny from all allow from 192.168.0.0/24 Redirect Visitors to New Page/Directory Redirect oldpage.html http://www.domainname.com/newpage.html Redirect /olddir http://www.domainname.com/newdir/ Block site from specific referrers RewriteEngine on RewriteCond %{HTTP_REFERER} site-to-block\.com [NC] RewriteCond %{HTTP_REFERER} site-to-block-2\.com [NC] RewriteRule .* - [F] Block Hot Linking/Bandwidth hogging RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC] RewriteRule \.(gif|jpg)$ - [F] Want to show a “Stealing is Bad” message too? Add this below the Hot Link Blocking code: RewriteRule \.(gif|jpg)$ http://www.mydomain.com/dontsteal.gif [R,L] Stop .htaccess (or any other file) from being viewed <files file-name> order allow,deny deny from all </files> Avoid the 500 Error # Avoid 500 error by passing charset AddDefaultCharset utf-8 Grant CGI Access in a directory Options +ExecCGI AddHandler cgi-script cgi pl # To enable all scripts in a directory use the following # SetHandler cgi-script Password Protecting Directories Use the .htaccess Password Generator and follow the brief instructions! Change Script Extensions AddType application/x-httpd-php .gne gne will now be treated as PHP files! Similarly, x-httpd-cgi for CGI files, etc. Use MD5 Digests Performance may take a hit but if thats not a problem, this is a nice option to turn on. ContentDigest On The CheckSpelling Directive From Jens Meiert: CheckSpelling corrects simple spelling errors (for example, if someone forgets a letter or if any character is just wrong). Just add CheckSpelling On to your htaccess file. The ContentDigest Directive As the Apache core features documentation says: “This directive enables the generation of Content-MD5 headers as defined in RFC1864 respectively RFC2068. The Content-MD5 header provides an end-to-end message integrity check (MIC) of the entity-body. A proxy or client may check this header for detecting accidental modification of the entity-body in transit. Note that this can cause performance problems on your server since the message digest is computed on every request (the values are not cached). Content-MD5 is only sent for documents served by the core, and not by any module. For example, SSI documents, output from CGI scripts, and byte range responses do not have this header.” To turn this on, just add ContentDigest On. Enable Gzip – Save Bandwidth # BEGIN GZIP <ifmodule mod_deflate.c> # Combine the below two lines - I've split it up for presentation AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript </ifmodule> # END GZIP Turn off magic_quotes_gpc # Only if you use PHP <ifmodule mod_php4.c> php_flag magic_quotes_gpc off </ifmodule> Set an Expires header and enable Cache-Control <ifmodule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 1 seconds" ExpiresByType text/html "access plus 7200 seconds" ExpiresByType image/gif "access plus 518400 seconds" ExpiresByType image/jpeg "access plus 518400 seconds" ExpiresByType image/png "access plus 518400 seconds" ExpiresByType text/css "access plus 518400 seconds" ExpiresByType text/javascript "access plus 216000 seconds" ExpiresByType application/x-javascript "access plus 216000 seconds" </ifmodule> <ifmodule mod_headers.c> # Cache specified files for 6 days <filesmatch "\.(ico|flv|jpg|jpeg|png|gif|css|swf)$"> Header set Cache-Control "max-age=518400, public" </filesmatch> # Cache HTML files for a couple hours <filesmatch "\.(html|htm)$"> Header set Cache-Control "max-age=7200, private, must-revalidate" </filesmatch> # Cache PDFs for a day <filesmatch "\.(pdf)$"> Header set Cache-Control "max-age=86400, public" </filesmatch> # Cache Javascripts for 2.5 days <filesmatch "\.(js)$"> Header set Cache-Control "max-age=216000, private" </filesmatch> </ifmodule>