apache下實現301永久性重定向的方法_Web服務器教程
因為網站是使用了www.wf0088.com作為博客域名,所以想實現mb5u.com全部重定向(跳轉)到www.wf0088.com。同時按照google的建議,使用服務器端 301 重定向,為了確保用戶及搜索引擎定向至正確網頁的最佳方法。301 狀態代碼表示某網頁已被永久遷移至新位置。下面將了解一下apache下實現301永久性重定向2個方法,需要具有訪問服務器的 .htaccess 文件的權限。
1. Apache模塊 mod_alias的 Redirect 和 RedirectMatch命令
上面提到2個命令使用方法相似。而區別就是后者RedirectMatch基于正則表達式匹配對當前的URL發送一個外部重定向語法為:
Redirect [status] URL-path URL
RedirectMatch [status] regex URL
status參數可以使用以下HTTP狀態碼:
permanent
返回一個永久性重定向狀態碼(301),表示此資源的位置變動是永久性的。
temp
返回一個臨時性重定向狀態碼(302),這是默認值。
seeother
返回一個“參見”狀態碼(303),表示此資源已經被替代。
gone
返回一個“已廢棄”狀態碼(410),表示此資源已經被永久性地刪除了。如果指定了這個狀態碼,則URL參數將被忽略。
舉例:
APACHE
Redirect 301 /old/old.htm http://www.wf0088.com/new.htm Redirect permanent /one http://mb5u.com/two RedirectMatch 301 (.*).gif$ http://www.wf0088.com/images/$1.jpg |
2.使用mod_rewrite重寫URL方式
APACHE
Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^mb5u.com RewriteRule ^(.*)$ http://www.wf0088.com/$1 [R=permanent,L] |
在這里判斷當前服務器變量HTTP_HOST是否等于mb5u.com,為真就進行重寫,按照R=permanent進行永久重定向,L表示并立即停止重寫操作,并不再應用其他重寫規則
下面是我最終實現的.htaccess文件,同時也并入wordpress重寫規則。
APACHE
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On #Redirect Options +FollowSymLinks RewriteCond %{HTTP_HOST} ^mb5u.com$ RewriteCond %{HTTP_HOST} !^$ RewriteRule ^(.*)$ http://www.wf0088.com/$1 [R=301,L] #Rewrite(blog) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^blog/.* /blog/index.php [L] RewriteRule . - </IfModule> # END WordPress |
- 相關鏈接:
- 教程說明:
Web服務器教程-apache下實現301永久性重定向的方法。