htaccess Tips and Tricks

Ashwani Garg
2 min readMar 12, 2023

--

Htaccess File Tutorial and Tips.

Note: .htaccess file will be in hidden format, please change your folder and file settings to view this file.

How to Create a .htaccess File?

Open any text editor application and file save as with .htaccess name and enablemod_rewrite extension in php.ini file in Apache Web Server configurations.

Disable directory Listing

If you want to disable folder files listing, include following code.

# Disable Directory Browsing

Options All -Indexes

Error Pages

Here error page is redirecting to error.html.

errorDocument 400 http://www.youwebsite.com/error.html

errorDocument 401 http://www.youwebsite.com/error.html

errorDocument 404 http://www.youwebsite.com/error.html

errorDocument 500 http://www.youwebsite.com/error.html

RewriteEngine On it is turn on Rewrite Rules in Apache Server. if you want to turn off, just change the value to off.

RewriteEngine on

Domain Redirection

.htacces code for redirecting yourwebsite.com to www.yourwebsite.com

RewriteCond %{HTTP_HOST} ^yourwebsite.com
RewriteRule (.*) http://www.yourwebsite.com/$1 [R=301,L]s

Sub Domain Redirection

Sub domain redirection mapping to folder. Here http://www.yourwebsite.com is connecting to website_folder folder.

RewriteCond %{HTTP_HOST} ^www\.yourwebsite\.com$
RewriteCond %{REQUEST_URI} !^/website_folder/
RewriteRule (.*) /website_folder/$1

Here http://subdomain.yourwebsite.com is connecting to subdomain_folder folder.

RewriteCond %{HTTP_HOST} ^subdomain\.yourwebsite\.com$
RewriteCond %{REQUEST_URI} !^/subdomain_folder/
RewriteRule (.*) /subdomain_folder/$1

Old Domain Redirection

htaccess code for redirecting old domain(abc.com) to new domain(xyz.com). Live demo fglogin.com is now redirecting to oauthlogin.com

RewriteCond %{HTTP_HOST} ^abc.com
RewriteRule (.*) http://www.xyz.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.abc\.com
RewriteRule (.*) http://www.abc.com/$1 [R=301,L]

Friendly URLs

Friendly/Pretty URLs help in search engine rankings.

Profile URL

Profile parameter allows [a-zA-Z0–9_-] these inputs. More help read Understanding Regular Expression

http://yourwebsite.com/profile.php?username=ashwani

to

http://yourwebsite.com/ashwani

RewriteRule ^([a-zA-Z0–9_-]+)$ profile.php?username=$1
RewriteRule ^([a-zA-Z0–9_-]+)/$ profile.php?username=$1

Messages URL

http://yourwebsite.com/messages.php?message_username=ashwani

to

http://yourwebsite.com/messages/ashwani

RewriteRule ^messages/([a-zA-Z0–9_-]+)$ messages.php?message_username=$1
RewriteRule ^messages/([a-zA-Z0–9_-]+)/$ messages.php?message_username=$1

Friends URL

http://yourwebsite.com/friends.php?username=ashwani

to

http://yourwebsite.com/friends/ashwani

RewriteRule ^friends/([a-zA-Z0–9_-]+)$ friends.php?username=$1
RewriteRule ^friends/([a-zA-Z0–9_-]+)/$ friends.php?username=$1

Friends URL with Two Parameters

Here the first parameter allows [a-zA-Z0–9_-] and second parameter allows only number [0–9]

http://yourwebsite.com/friends.php?username=ashwani&page=2

to

http://yourwebsite.com/friends/ashwani/2

RewriteRule ^friends/([a-zA-Z0–9_-]+)/([0–9]+)$ friends.php?username=$1&page=$2
RewriteRule ^friends/([a-zA-Z0–9_-]+)/([0–9]+)/$ friends.php?username=$1&page=$2

Hiding File Extension

http://www.yourwebsite.com/index.html

to

http://www.yourwebsite.com/index

RewriteRule ^([^/.]+)/?$ $1.html

--

--

Ashwani Garg
Ashwani Garg

Written by Ashwani Garg

FullStack Web, App Developer and also Full Time Blogger

No responses yet