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