在Unix/Linux主機(jī)上設(shè)置301永久重定向的方法
在Unix/Linux主機(jī)上設(shè)置的方法
可以用.htaccess文件
1. Apache模塊 mod_alias的 Redirect 和 RedirectMatch命令
上面提到2個命令使用方法相似。而區(qū)別就是后者RedirectMatch基于正則表達(dá)式匹配對當(dāng)前的URL發(fā)送一個外部重定向語法為:
Redirect [status] URL-path URL
RedirectMatch [status] regex URL
status參數(shù)可以使用以下HTTP狀態(tài)碼:
permanent
返回一個永久性重定向狀態(tài)碼(301),表示此資源的位置變動是永久性的。
temp
返回一個臨時性重定向狀態(tài)碼(302),這是默認(rèn)值。
seeother
返回一個“參見”狀態(tài)碼(303),表示此資源已經(jīng)被替代。
gone
返回一個“已廢棄”狀態(tài)碼(410),表示此資源已經(jīng)被永久性地刪除了。如果指定了這個狀態(tài)碼,則URL參數(shù)將被忽略。
舉例:
APACHE
Redirect 301 /old/old.htm http://www.###.com/new.htm
Redirect permanent /one http://###.com/two
RedirectMatch 301 (.*).gif$ http://www.###.com/images/$1.jpg
2.使用mod_rewrite重寫URL方式
APACHE
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^####.comRewriteRule ^(.*)$ http://www.###.com/$1 [R=permanent,L]
在這里判斷當(dāng)前服務(wù)器變量HTTP_HOST是否等于###.com,為真就進(jìn)行重寫,按照R=permanent進(jìn)行永久重定向,L表示并立即停止重寫操作,并不再應(yīng)用其他重寫規(guī)則
下面是最終實現(xiàn)的.htaccess文件,同時也并入wordpress重寫規(guī)則。
APACHE
# BEGIN WordPress
RewriteEngine On
#Redirect
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^###.com$
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^(.*)$ http://www.###.com/$1 [R=301,L]
#Rewrite(blog)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^blog/.* /blog/index.php [L]
RewriteRule . -
# END WordPress