Since we are first and foremost a cPanel web hosting company, we will be exploring this from cPanel perspective.

The best and easiest way to get this done is to log in to your cPanel and scroll down to Domains >> Redirects.

The cPanel Redirects interface allows you to send all of the visitors to a domain or particular page to a different URL.

For example, if you create a page with a long URL, use the Redirects interface to add a redirect from a short URL to the long URL.

Visitors can enter the short URL to access the content of the long URL.

 

But here are other common 301 Redirect rules you can use in your .htaccess file

redirect a single page:

Redirect 301 /pagename.php http://www.domain.com/pagename.html

 

redirect an entire site or domain to a new one:

Redirect 301 / http://www.domain.com/

 

redirect an entire site to a subfolder:

Redirect 301 / http://www.domain.com/subfolder/

 

redirect a subfolder to a different website:

Redirect 301 /subfolder http://www.domain.com/

 

redirect a file extension but retain the page name:

Example: If you want a .html extension to use the same filename but use the .php extension.

RedirectMatch 301 (.*)\.html$ http://www.domain.com$1.php

 

use rewrite to redirect from old domain to new domain:

RewriteEngine on
RewriteBase /
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]

 

use rewrite to redirect from a non-www to www subdomain:

RewriteEngine on
RewriteBase /
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]

 

use rewrite to redirect a domain to www location with subdirectory:

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/directory/index.html [R=301,NC]

 

use rewrite to redirect from an old domain to a new domain that includes the full path and query string:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.*) http://www.newdomain.com%{REQUEST_URI} [R=302,NC]

 

use rewrite to redirect from an old domain with a subdirectory to a new domain without the subdirectory, but include the full path and query string:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/subdirname/(.*)$
RewriteRule ^(.*) http://www.katcode.com/%1 [R=302,NC]

 

rewrite and redirect URLs with query parameters with files placed in a root directory:

Example: The original URL being http://www.website.com/index.php?id=3 and the new URL being http://www.website.com/path-to-new-location/

RewriteEngine on
RewriteCond %{QUERY_STRING} id=3
RewriteRule ^index\.php$ /path-to-new-location/? [L,R=301]

 

redirect URLs with query parameters and place files in a subdirectory:

Example: The original URL being http://www.website.com/sub-dir/index.php?id=3 and the new page being http://www.website.com/path-to-new-location/

RewriteEngine on
RewriteCond %{QUERY_STRING} id=3
RewriteRule ^sub-dir/index\.php$ /path-to-new-location/? [L,R=301]

 

redirect a site to HTTPS from HTTP to eliminate duplicate content:

RewriteEngine on
RewriteCond %{HTTPS} on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

 

redirect a site from HTTP to HTTPS to eliminate duplicate content:

RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}

 

remove an index.html or index.php and redirect to the root:

RewriteEngine On
RewriteCond %{THE_REQUEST} /index.php HTTP [NC]
RewriteRule (.*)index.php$ /$1 [R=301,L]
RewriteEngine On
RewriteCond %{THE_REQUEST} /index.html HTTP [NC]
RewriteRule (.*)index.html$ /$1 [R=301,L]

 

rewrite and redirect URLs with query parameter to directory-based structure, retaining query string in URL root level:

Example: The original URL being http://www.website.com/index.php?id=100 and the new page being http://www.website.com/100/

RewriteEngine On
RewriteRule ^([^/d]+)/?$ index.php?id=$1 [QSA]

 

rewrite URLs with a query parameter to a directory-based structure, retaining the query string parameter in URL subdirectory:

Example: The original URL is http://www.website.com/index.php?category=hats and the new page being http://www.website.com/category/hats/

 

RewriteEngine On
RewriteRule ^/?category/([^/d]+)/?$ index.php?category=$1 [L,QSA]

 

redirect an old website to a new domain and retain the URL path:

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

If you do not want to give the path to the new domain, change the last line to:

RewriteRule ^(.*)$ http://www.example-new.com/ [R=301,L]

 

rewrite and add a trailing slash to URLs without one:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !(.*)/$ 
RewriteRule ^(.*)$ http://www.example.com/$1/ [R=301,L]

 

redirect from a blog subdomain to a blog folder:

Example: Redirect blog.oldsite.com to www.newsite.com/blog/

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI}/ blog
RewriteRule ^(.*) http://www.somewhere.com/%{REQUEST_URI} [R=302,NC]
RewriteRule ^(.*) http://www.somewhere.com/blog/%{REQUEST_URI} [R=302,NC]

 

You can see other examples at this location: https://gist.githubusercontent.com/ScottPhillips/1721489/raw/3c0257209608aac18071d0ebe1f2b0b4e6aec8ee/.htaccess

Hai trovato utile questa risposta? 0 Utenti hanno trovato utile questa risposta (0 Voti)