apache下實現301永久性重定向的方法


因為博客是使用了www.php100.com作為博客域名,所以想實現php100.com全部重定向(跳轉)到www.php100.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.php100.com/new.htm
Redirect permanent /one http://php100.com/two
RedirectMatch 301 (.*).gif$ http://www.php100.com/images/$1.jpg


2.使用mod_rewrite重寫URL方式

APACHE

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


在這里判斷當前服務器變量HTTP_HOST是否等於php100.com,為真就進行重寫,按照R=permanent進行永久重定向,L表示並立即停止重寫操作,並不再應用其他重寫規則

下面是我最終實現的.htaccess文件,同時也並入wordpress重寫規則。

APACHE

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
#Redirect
Options +FollowSymLinks
RewriteCond %{HTTP_HOST}   ^php100.com$
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^(.*)$ http://www.php100.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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM