這篇文章運用簡單易懂的例子給大家介紹虛擬主機怎樣做301重定向,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
設置301重定向規則,生成文件放入到根目錄,即可實現虛擬主機301重定向。
什么時候需要做301重定向?一是為了規范URL,集中權重;二是,網站改版,將舊版頁面轉移到新版頁面上。
比如,網站首頁的URL有以下幾種:
xxx.com
www.xxx.com
xxx.com/index.html
www.xxx.com/index.html
以及HTTP頁面和HTTPS頁面等多種。一個首頁出現如此多URL,一是不規范,二是權重分散,這時我們就需要將所有指向首頁的URL統一規范到某一個,比如:www.xxx.com或https://www.xxx.com/。
還有頁面的URL改變了,那么我們也需要做一個301重定向,避免老的URL產生404。
那么我們怎么做301重定向呢?要區分Linux虛擬主機還是Windows虛擬主機,兩者301重定向規則不同。
Linux虛擬主機,一般偽靜態規則放入.htaccess文件。
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP:From-Https} !^on$ [NC] RewriteCond %{HTTP_HOST} ^(www.)?xxx.com$ [NC] RewriteRule ^(.*)$ https://www.xxx.com/$1 [R=301,L] </IfModule>
# 將xxx.com和www.xxx.com跳轉到https://www.xxx.com,防止apache子站繼承上級目錄.htaccess受影響,注釋請自行刪除,不需要放入htaccess文件
如果有多個需求,如:a.com跳轉到到www.a.com;b.com跳轉到www.b.com,規則如下:
RewriteEngine On RewriteCond %{HTTP_HOST} ^a.com$ [NC] RewriteRule ^(.*)$ http://www.a.com/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^b.com$ [NC] RewriteRule ^(.*)$ http://www.b.com/$1 [R=301,L]
根據自身網站需要添加修改,然后上傳規則到服務器wwwroot根目錄的.htaccess文件里。如沒有.htaccess文件,新建一個文本文檔,并重命名為.htaccess。
Windows虛擬主機,一般偽靜態規則放入到web.config文件。
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="301" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{HTTP_FROM_HTTPS}" pattern="^on$" negate="true" /> </conditions> <action type="Redirect" url="https://www.xxx.com/{R:1}" redirectType="Permanent" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
# www.xxx.com對應修改為您自已的域名,注釋請自行刪除,不需要放入web.config文件內
關于虛擬主機怎樣做301重定向就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。