How to create redirect using the .htaccess file in cpanel?

Mod_Rewrite – specifies how web pages and URLs are displayed to the visitors.

We would like to draw your attention to the usage of Mod_Rewrite rules in .htaccess file.

Before creating a redirect, you should choose the redirection type which would be more preferable for you:


Permanent redirect has a status code of 301, and unlike the temporary one, it is cached in the browser memory. It implies that the page has been moved and requests all search engines and user agent coming to the page to update the URL in their database. This is the most common type of redirect.

Temporary redirect means that the page is sending status code 302 to the browser. Code 302 tells the browser not to cache this redirect into its saved data. It will redirect the visitor or search engine, but the search engine will continue to index to the original page. This is the recommended type of redirect, unless you are absolutely sure that you will never change it in the future.

The list of the most common and useful redirects, which can be set through the .htaccess file, can be found below (the domains specified in the examples should be replaced with your own ones):


Permanent redirect from example.com to domain.com


RewriteEngine On

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


Temporary redirect from example.com to domain.com

        RewriteEngine On
        RewriteCond %{HTTP_HOST} ^example\.com$ [OR] 
        RewriteCond %{HTTP_HOST} ^www\.example\.com$ 
        RewriteRule ^(.*)$ "http\:\/\/domain\.com\/" [R=302,L]


NOTE: Below are the examples of permanent redirects. Temporary one can be defined by replacing [R=301,L] with [R=302,L] in the end of the code (where necessary).


Redirect from example.com/subfolder to domain.com

        RewriteEngine On
        RewriteCond %{HTTP_HOST} ^example\.com$ [OR] 
        RewriteCond %{HTTP_HOST} ^www\.example\.com$ 
        RewriteRule ^subfolder$ "http\:\/\/domain\.com\/" [R=301,L] 


Redirect from HTTP to HTTPS

for a certain domain, example.com: RewriteEngine On

         RewriteCond %{HTTPS} !=on 
         RewriteRule .* https://example.com/%{REQUEST_URI} [R,L]


or RewriteCond %{SERVER_PORT} 80

        RewriteCond %{HTTP_HOST} ^example\.com$ [OR] 
        RewriteCond %{HTTP_HOST} ^www\.example\.com$ 
        RewriteRule ^(.*)$ https://www.example.com/$1 [R,L] 


Redirect from non-WWW to WWW


for any domain .htaccess takes effect on:

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


for a certain domain, example.com:

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


Redirect from WWW to non-WWW

for any domain .htaccess takes effect on:

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


for a certain domain, example.com:

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


Changes the directory root for the main domain to public_html/subfolder

        RewriteEngine on 
        RewriteCond %{HTTP_HOST} ^(www.)?example.com$ 
        RewriteCond %{REQUEST_URI} !^/subfolder/ 
        RewriteCond %{REQUEST_FILENAME} !-f 
        RewriteCond %{REQUEST_FILENAME} !-d 
        RewriteRule ^(.*)$ /subfolder/$1 
        RewriteCond %{HTTP_HOST} ^(www.)?example.com$ 
        RewriteRule ^(/)?$ subfolder/index.php [L] 


NOTE: The .htaccess file should be located in the directory root of the domain you wish to configure certain rules for.

 

Disabling existing .htaccess rules


If you need to disable some of the existing rules, for example, for testing purposes, you can simply comment them out. In order to do so, add the pound sign # at the beginning of each line of the rule.

Was this answer helpful? 8 Users Found This Useful (15 Votes)