使用ISAPI Rewrite做實用的重定向

2021-09-20 23:56:57 字數 2604 閱讀 1979

.htaccess檔案的內容如下:

rewritecond % ask.xxoo.com

rewriterule ^(index.html)?$ /ask/

rewriterule ^(.*)list-([0-9]+)-([a-z]+)\.html$ $1/ask/list.php?catid=$2&action=$3

rewriterule ^(.*)show-([0-9]+)\.html$ $1/ask/show.php?id=$2

分析**:

rewritecond 後面的 % 是網域名稱 

rewritecond % space.xxoo.com

表示位址列中的網域名稱是否等於space.xxoo.com這裡也可以使用正則 如:rewritecond % space([1-9]).xxoo.com 這匹配的url包含了space1.xxoo.com  space2.xxoo.com space2.xxoo.com  .......space9.xxoo.com 這9個網域名稱

rewriterule ^(index.html)?$ /ask/

rewriterule ^(.*)list-([0-9]+)-([a-z]+)\.html$ $1/ask/list.php?catid=$2&action=$3

匹配位址包含

ask.xxoo.com/list-3-all.html 重定向的是ask.xxoo.com/ask/list.php?catid=3&action=all

ask.xxoo.com/list-45-high.html 重定向的是ask.xxoo.com/ask/list.php?catid=45&action=hight

rewriterule ^(.*)show-([0-9]+)\.html$ $1/ask/show.php?id=$2

匹配位址包含

ask.xxoo.com/show-3.html 重定向的是ask.xxoo.com/ask/show.php?id=3

ask.xxoo.com/show-21.html 重定向的是ask.xxoo.com/ask/show.php?id=21

。。。。。

自己現在伺服器在用的 isapi_rewrite 3.x.x

rewriteengine on

rewriterule ^index.html$ / [nc,l,r=301,o] 

匹配的意義:把根目錄下面的index.html 預設跳轉到不帶index.html 防止index.html分散權重

說明:o表示對url進行標準化,l表示last rule,最後一條規則,也就是後面的重寫規則對他不起作用,防止被其他匹配的規則再次重寫。這裡的路徑可以是相對路徑也可以是絕對路徑。

說明:[i,rp]:i表示忽略大小寫,rp表示使用301轉向,以上都是整個網域名稱重定向。

.htaccess的301重定向**

把不帶www的網域名稱301到帶www的網域名稱

rewriteengine on

rewritecond % ^example.com$ [nc]

rewriterule ^(.*)$ [r=301,l]

「rewriteengine on」,開啟 rewrite 規則開關;

「rewritecond」指重寫的條件。後面的字串通過正規表示式進行匹配,匹配字串以 ^ 開頭並以 $ 結尾。此處 % 獲取當前主機名稱。條件為「當主機名稱為example.com」時執行下列的重寫規則。其中「[nc]」指不區分大小寫;

「rewriterule」,定義一條重寫規則。此處含義:跳轉到「接上訪問請求的**中 example.com 後面的部分。[r=301] 指重寫為 301 重定向/跳轉([r] 單指跳轉,意義等同 [r=302]),[l] 指最後一條匹配規則。

把老網域名稱301到新網域名稱

更換網域名稱時,老網域名稱的權重不能浪費了,把老網域名稱的頂級網域名稱和帶www的網域名稱都要301到新網域名稱,**如下

rewriteengine on

rewritecond % ^(www.)?old.com$ [nc,or]

rewritecond % ^new.com$ [nc]

rewriterule ^(.*)$ [r=301,l]

現在無論你訪問old.com,www.old.com,new.com都會301到www.new.com 夠完美了吧!而且所有的內頁也會跟著301,接下來至少等待2個月,期間不要刪除原網域名稱,靜等權重完全轉移!

需要注意的是,wordpress預設情況下不支援該條命令,因為wordpress的**本身就是偽靜態的,要想實現這個功能,必須先把wordpress的內頁生成html檔案。

==重要提醒==:iis 6中的.htaccess 301定向

以下規則適用於 iis 6中的 isapi_rewrite 2.x 3.x 中的httpd.ini或.htaccess

注意這兒的.htaccess不是apache中的.htaccess 規則略有不同。

rewritecond % ^sjyhome.com$

rewriterule (.*) [nc,r=301]

利用isapi rewrite防盜煉

我們在它後面加上一句 如果想允許所有google子站和baidu子站形如images.baidu.com,images.google.com等站則做如下設定 至此,乙個相當有效的防盜煉系統已經出來了,但如上設定有乙個問題,如果瀏覽者瀏覽了盜鏈頁面後訪問本站頁面,則被盜鏈的快取會影響的正常顯示。把 改...

利用isapi rewrite防盜煉

我們在它後面加上一句 如果想允許所有google子站和baidu子站形如images.baidu.com,images.google.com等站則做如下設定 至此,乙個相當有效的防盜煉系統已經出來了,但如上設定有乙個問題,如果瀏覽者瀏覽了盜鏈頁面後訪問本站頁面,則被盜鏈的快取會影響的正常顯示。把 改...

利用isapi rewrite防盜煉

我們在它後面加上一句 如果想允許所有google子站和baidu子站形如images.baidu.com,images.google.com等站則做如下設定 至此,乙個相當有效的防盜煉系統已經出來了,但如上設定有乙個問題,如果瀏覽者瀏覽了盜鏈頁面後訪問本站頁面,則被盜鏈的快取會影響的正常顯示。把 改...