簡體   English   中英

重定向到子域的ISAPI重寫幫助

[英]ISAPI Rewrite Help With Redirect To Sub Domain

我需要一些ISAPI語法幫助,我將啟用一個新站點,並希望將舊論壇存檔到存檔子域中。

該論壇位於ASP中,當前具有此URL

http://www.mywebsite.co.uk/forum/forum_posts.asp?TID=34419 http://www.mywebsite.co.uk/forum/forum_topics.asp?FID=47

我希望將對論壇的每個請求重定向到301:

http://archive.mywebsite.co.uk/forum/forum_posts.asp?TID=34419 http://archive.mywebsite.co.uk/forum/forum_topics.asp?FID=47

基本上,論壇文件夾中帶有.asp擴展名且帶有或不帶有查詢字符串的所有內容-十分感謝任何幫助。

謝謝

對於將URL重定向到子域,距離您提出問題已有幾個月的時間,但這也許仍會有所幫助。

假設您正在使用isapi_rewrite v3,請嘗試以下操作:

RewriteCond %{HTTP:Host} ^www\.
RewriteRule ^/forum/(.*\.asp)$ http://archive.mywebsite.co.uk/forum/$1 [NC,R=301]

第一行查找以www開頭的主機。 (帶尾隨點)。 這樣可以確保您不會遇到無限循環,將存檔重定向到其自身。 尾隨點僅在執行www時很挑剔,而對其他諸如www2而言則不然。

第二行查找/forum/ ,然后捕獲(...)任何字符.*以及文字點和asp \\.asp ,以url $結尾

然后它將轉到您在/forum/文件夾中的子域(因為未捕獲/ forum /,我們需要重復此操作),並且捕獲到的整個URL的其余部分為$1

NC表示不區分大小寫,因此所有大小寫都可以混合使用。 R=301表示重定向,並使其成為永久301重定向,因為這不是臨時的。

在v3規則中,querystring參數與規則完全分開處理,因此您在這里無需執行任何操作。 如果沒有參數,則可以使用。 如果有參數,則按照上面的問題將其傳遞。

這將忽略http vs https。 它將重定向到http,因此如果原始文件為https,則可能會出現瀏覽器警告。 有很多方法可以解決,但我不想弄亂基本答案。

在我看來,將域本身包含在重寫規則中總是有點怪異,因為您可能希望將其移動。 您可以在第一行中捕獲主機的其余部分,並在第二行中使用它。

RewriteCond %{HTTP:Host} ^www\.(.*)$
RewriteRule ^/forum/(.*\.asp)$ http://archive.%1/forum/$1 [NC,R=301]

這類似於上面的內容,除了捕獲www.dot之后的主機之外,在行(.*)$的末尾我不確定這里是否需要$,但是它明確表明了我們想要它所有。

RewriteCond捕獲使用百分號編號,因此重寫規則中的%1將子域替換為主機,並且$1仍表示替換捕獲的... asp url。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM