How to Implement 301 Permanent Redirects in Apache

         How to redirect all traffic from 123.com to www.123.com. Following Google’s recommendations, use a server-side 301 redirect to ensure users and search engines are directed to the correct page. The 301 status code indicates that a web page has been permanently moved to a new location. Below we’ll look at two methods to implement a 301 permanent redirect in Apache, which requires access to the server’s .htaccess file.


 

1. Apache mod_alias Redirect and RedirectMatch Directives

The two directives mentioned above are used in similar ways. The difference is that RedirectMatch sends an external redirect based on regex pattern matching for the current URL. The syntax is as follows:

Redirect [status] URL-path URL

RedirectMatch [status] regex URL

The status parameter can use the following HTTP status codes:

permanent

Returns a permanent redirect status code (301), indicating that the resource’s location change is permanent.

temp

Returns a temporary redirect status code (302). This is the default value.

seeother

Returns a “See Other” status code (303), indicating that the resource has been replaced.

gone

Returns a “Gone” status code (410), indicating that the resource has been permanently removed. If this status code is specified, the URL parameter will be ignored.

Examples:

APACHE

Redirect 301 /old/old.htm http://www.123.com/new.htm
Redirect permanent /one http://123.com/two
RedirectMatch 301 (.*).gif$ http://www.123.com/images/$1.jpg

2. Using mod_rewrite to Rewrite URLs

APACHE

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^123.com
RewriteRule ^(.*)$ http://www.123.com/$1 [R=permanent,L]

Here, it checks if the current server variable HTTP_HOST equals 123.com. If true, it performs a rewrite, executing a permanent redirect with R=permanent. The L flag indicates that it should immediately stop the rewrite operation and not apply any other rewrite rules.

Below is the final .htaccess file implemented for Apache, which also incorporates the ECSHOP rewrite rules.

// ################################################

<FilesMatch "/.(bak|inc|lib|sh|tpl|lbi|dwt)$">
    order deny,allow
    deny from all
</FilesMatch>
<IfModule mod_rewrite.c>

RewriteEngine On
#RewriteBase /

#Redirect
Options +FollowSymLinks
RewriteCond %{HTTP_HOST}   ^123.com$
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^(.*)$ http://www.123.com/$1 [R=301,L]

# direct one-word access
RewriteRule ^index/.html$    index/.php [L]
RewriteRule ^temai/.html$    temai/.php [L]
RewriteRule ^pinpai/.html$    index/.php [L]
RewriteRule ^category$      index/.php [L]

# access any object by its numeric identifier
RewriteRule ^feed-c([0-9]+)/.xml$       feed/.php/?cat=$1 [L]
RewriteRule ^feed-b([0-9]+)/.xml$       feed/.php/?brand=$1 [L]
RewriteRule ^feed-type([^-]+)/.xml$       feed/.php/?type=$1 [L]
RewriteRule ^feed/.xml$                 feed/.php [L]

RewriteRule ^category-([0-9]+)-b([0-9]+)-min([0-9]+)-max([0-9]+)-attr([^-]*)-([0-9]+)-(.+)-([a-zA-Z]+)(.*)/.html$  category/.php/?id=$1&brand=$2&price_min=$3&price_max=$4&filter_attr=$5&page=$6&sort=$7&order=$8 [QSA,L]
RewriteRule ^category-([0-9]+)-b([0-9]+)-min([0-9]+)-max([0-9]+)-attr([^-]*)(.*)/.html$                            category/.php/?id=$1&brand=$2&price_min=$3&price_max=$4&filter_attr=$5 [QSA,L]
RewriteRule ^category-([0-9]+)-b([0-9]+)-([0-9]+)-(.+)-([a-zA-Z]+)(.*)/.html$                                      category/.php/?id=$1&brand=$2&page=$3&sort=$4&order=$5 [QSA,L]
RewriteRule ^category-([0-9]+)-b([0-9]+)-([0-9]+)(.*)/.html$                                                       category/.php/?id=$1&brand=$2&page=$3  [QSA,L]
RewriteRule ^category-([0-9]+)-b([0-9]+)(.*)/.html$                                                                category/.php/?id=$1&brand=$2  [QSA,L]
RewriteRule ^category-([0-9]+)(.*)/.html$                                                                          category/.php/?id=$1  [QSA,L]

RewriteRule ^goods-([0-9]+)(.*)/.html$  goods/.php/?id=$1 [QSA,L]

RewriteRule ^article_cat-([0-9]+)-([0-9]+)-(.+)-([a-zA-Z]+)(.*)/.html$  article_cat/.php/?id=$1&page=$2&sort=$3&order=$4  [QSA,L]
RewriteRule ^article_cat-([0-9]+)-([0-9]+)-(.+)(.*)/.html$              article_cat/.php/?id=$1&page=$2&keywords=$3 [QSA,L]
RewriteRule ^article_cat-([0-9]+)-([0-9]+)(.*)/.html$                   article_cat/.php/?id=$1&page=$2   [QSA,L]
RewriteRule ^article_cat-([0-9]+)(.*)/.html$                            article_cat/.php/?id=$1   [QSA,L]

RewriteRule ^article-([0-9]+)(.*)/.html$                                article/.php/?id=$1   [QSA,L]

RewriteRule ^brand-([0-9]+)-c([0-9]+)-([0-9]+)-(.+)-([a-zA-Z]+)/.html   brand/.php/?id=$1&cat=$2&page=$3&sort=$4&order=$5 [QSA,L]
RewriteRule ^brand-([0-9]+)-c([0-9]+)-([0-9]+)(.*)/.html                brand/.php/?id=$1&cat=$2&page=$3 [QSA,L]
RewriteRule ^brand-([0-9]+)-c([0-9]+)(.*)/.html                         brand/.php/?id=$1&cat=$2 [QSA,L]
RewriteRule ^brand-([0-9]+)(.*)/.html                                   brand/.php/?id=$1 [QSA,L]

RewriteRule ^tag-(.*)/.html                                             search/.php/?keywords=$1 [QSA,L]
RewriteRule ^snatch-([0-9]+)/.html$                                     snatch/.php/?id=$1 [QSA,L]
RewriteRule ^group_buy-([0-9]+)/.html$                                  group_buy/.php/?act=view&id=$1 [QSA,L]
RewriteRule ^auction-([0-9]+)/.html$                                    auction/.php/?act=view&id=$1 [QSA,L]

RewriteRule ^exchange-id([0-9]+)(.*)/.html$                             exchange/.php/?id=$1&act=view [QSA,L]
RewriteRule ^exchange-([0-9]+)-min([0-9]+)-max([0-9]+)-([0-9]+)-(.+)-([a-zA-Z]+)(.*)/.html$ exchange/.php/?cat_id=$1&integral_min=$2&integral_max=$3&page=$4&sort=$5&order=$6 [QSA,L]
RewriteRule ^exchange-([0-9]+)-([0-9]+)-(.+)-([a-zA-Z]+)(.*)/.html$                         exchange/.php/?cat_id=$1&page=$2&sort=$3&order=$4 [QSA,L]
RewriteRule ^exchange-([0-9]+)-([0-9]+)(.*)/.html$                                          exchange/.php/?cat_id=$1&page=$2  [QSA,L]
RewriteRule ^exchange-([0-9]+)(.*)/.html$                                                   exchange/.php/?cat_id=$1  [QSA,L]

########################################################################

Download Link: https://www.cnop.net/uploadfile/2014/0220/20140220102526261.zip

Leave a Comment

Your email address will not be published.