http://www.priteshgupta.com/ : The .htaccess configuration file on your server which controls Apache
Server is an important file and a very powerful tool for your website
if used properly. It is generally found in root of your web server. In
this article I will share how .htaccess can help improve your website’s
stability, security, functionality and usability.
Please backup your .htaccess file before doing any changes.
In case anything goes unexpected just replace the .htaccess with your
backup.
Search Engine Friendly 301 Redirects
If you have moved your website to another domain and want to redirect
all the pages to their new location or you want to redirect a
particular URL to a specific page in most Search Engine Friendly manner
then you can use the below code in your .htaccess.
## .htaccess Code :: BEGIN Redirect 301 /Old_Directory/ http://www.new-domain.com/ ## .htaccess Code :: END
Note: Remember not to insert “http://www” to the “/Old_Directory/”.
Block Requests From User Agents
By adding a ban list to your .htaccess file you can block all
unwanted user agents. These agents at times are harmful and can can
cause load on your server.
## .htaccess Code :: BEGIN ## Block Bad Bots by user-Agent SetEnvIfNoCase user-Agent ^FrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Java.* [NC,OR] SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR] SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR] SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR] SetEnvIfNoCase user-Agent ^Zeus [NC] Order Allow,Deny Allow from all Deny from env=bad_bot ## .htaccess Code :: END
Remove WWW from your website’s URL
If you wish to remove the “www” from your website’s URL, like
http://your-domain.com instead of http://www.your-domain.com, then you
can use the below code.
## .htaccess Code :: BEGIN RewriteEngine on Options +FollowSymLinks RewriteCond %{HTTP_HOST} ^www\.your-domain\.com$ [NC] RewriteRule ^(.*)$ http://your-domain.com/$1 R=301,NC] ## .htaccess Code :: END
Add WWW to your website’s URL
If you wish to add “www” your website URL, you can add the below code.
## .htaccess Code :: BEGIN RewriteEngine On Options +FollowSymLinks RewriteCond %{HTTP_HOST} ^your-domain.com [NC] RewriteRule ^(.*)$ http://www.your-domain.com/$1 [L,R=301] ## .htaccess Code :: END
Allow only specific IP addresses and block everyone else
If you want to allow only few particular IPs and deny everyone else
then you can use the below code in your .htaccess file. Replace
“http://www.your-domain.com/under_construction.html” with the error page
which you will like to be displayed to everyone(except the particulars
IPs) or you can simply omit the line if you don’t need it.
## .htaccess Code :: BEGIN ErrorDocument 403 http://www.your-domain.com/under_construction.html Order deny,allow Deny from all Allow from 172.16.254.1 Allow from 172.16.254.9 ## .htaccess Code :: END
Ban only specific IP addresses and allow everyone else
If you think there are spammers regularly flooding your website you
can simply ban their IP addresses to get rid of them and allow everyone
else.
## .htaccess Code :: BEGIN allow from all deny from 172.16.254.6 deny from 172.16.254.5 ## .htaccess Code :: END
Custom Error Pages
You must have already seen many custom 404 error pages, you can use
the below code for error pages for 404 errors and other errors too.
## .htaccess Code :: BEGIN ErrorDocument 401 /error/401.html ErrorDocument 403 /error/403.html ErrorDocument 404 /error/404.html ErrorDocument 500 /error/500.html ## .htaccess Code :: END
Change Index Page
The default page of a regular server is either an index.html or index.php, you can use the below code to change it.
## .htaccess Code :: BEGIN DirectoryIndex index2.html ## .htaccess Code :: END
Remove Extensions from Files
The below code removes extension in a URL, this make it the URL more
Search Engine Friendly. Example: http://www.your-domain.com/about.php
will be http://www.your-domain.com/about. You can replace .php with
.html or whatever you want.
## .htaccess Code :: BEGIN RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+)$ /$1.php [L,QSA] ## .htaccess Code :: END
Disable Directory Browsing
You can block users from viewing directories without an index page using the below code.
## .htaccess Code :: BEGIN Options All -Indexes ## .htaccess Code :: END
Disable Browser To Prompt Open/Save As Option
Usually when you try to download something you generally get asked
whether to Save it or Open it. To disable this from server side, you can
use the following code:
## .htaccess Code :: BEGIN AddType application/octet-stream .mp3 AddType application/octet-stream .mpg AddType application/octet-stream .avi AddType application/octet-stream .mov AddType application/octet-stream .pdf AddType application/octet-stream .xls AddType application/octet-stream .zip ## .htaccess Code :: END
Change Script Execution Type
If you have php within an html file, you can still execute it as php using the below code.
## .htaccess Code :: BEGIN AddType application/x-httpd-php .html ## .htaccess Code :: END
Stop Execution of Script
If you want, you can stop scripts like php, asp, etc from executing and simply display them as plain text.
## .htaccess Code :: BEGIN RemoveHandler cgi-script .php .asp .html AddType text/plain .php .asp .html ## .htaccess Code :: END
Set Default Admin Email ID
Using below code you can set the default Email ID of your server.
## .htaccess Code :: BEGIN ServerSignature EMail SetEnv SERVER_ADMIN mail@your-site.com ## .htaccess Code :: END
Disable Hotlinking
Using this disable users from using images hosted on your server in
their website, this helps in saving bandwidth. You can do this by adding
the below code, replace “http://your-domain.com/copyright.jpg” with the
image which you will like to be displayed instead.
## .htaccess Code :: BEGIN Options +FollowSymlinks #Protect against hotlinking RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www.)?your-domain.com/ [nc] RewriteRule .*.(gif|jpg|png)$ http://your-domain.com/copyright.jpg[nc] ## .htaccess Code :: END
Enable Caching
The below code will tell the web browser to use cache instead when
your website is loaded. It doesn’t directly increase the loading speed
of your website, it will basically loads the cached content when the
user visits your website second time. Currently the cache expiry time is
set to 1 day(86400 seconds).
## .htaccess Code :: BEGIN # BEGIN EXPIRES ExpiresActive On ExpiresDefault "access plus 86400 seconds" ExpiresByType text/css "access plus 1 week" ExpiresByType text/plain "access plus 1 month" ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType application/x-javascript "access plus 1 month" ExpiresByType application/javascript "access plus 1 week" ExpiresByType application/x-icon "access plus 1 year" # END EXPIRES ## .htaccess Code :: END