![](/img/trans.png)
[英]Redirect bookmarked URLS via IIS Rewrite Module is not working properly even though URL pattern matches in testing
[英]IIS URL rewrite not working properly 404 errors
我正在IIS 10上升級joomla網站設置。現在,我有oldsite.com和newsite.com。 我的新站點的文件夾結構略有不同,但是頁面名稱和內容相同。 正確的做法是,客戶不希望在舊頁面上失去SEO排名,並希望將其重定向以在新的升級網站上更正排名。
我需要做以下
是通配符,將被替換為在該位置的URL中鍵入的任何內容
/ div-services / *將重定向到/ div / *
/ div-questions / *將重定向到/ div / questions / *
/ fm-lw-services / *將重定向到/ fm-lw / *
/ locations / *將重定向到/ contact / *
/ resources / blog / *將重定向到/ blog / *
/ contact-us / *將重定向到/ contact / *
我最初將我的模式設置為
(.*)(div-services)(.*) becomes {R:1}( div){R:1}
效果很好,直到我在URL中以某種形式重復了匹配的短語。 在這種情況下,URL中再次出現“ div-services”,它也會被替換。
例如,如果URL是newsite.com/div-services/xyz/abc-div-services,則根據規則,它將替換兩次出現的“ div-services”,這是不希望的,我只需要替換第一次出現的“ div-services”。 我雖然很容易解決,但使我的模式如下
(.*)(/div-services/)(.*) replace to {R:1}(/div/){R:1}
即使在測試模式中它可以成功驗證,但它不起作用並且不重寫我什至嘗試使用轉義字符的URL
(.*)(\\/div-services\\/)(.*) becomes {R:1}(/div/){R:1}
仍然沒有運氣。 經過挖掘和挖掘,我發現了以下示例
div-services/(.*)$ becomes div/{R:1}
這通常效果很好,但是現在如果我沒有結尾的正斜杠,它將無法正常工作
例如,如果URL為newsite.com/div-services,則無法使用,但為newsite.com/div-services/,並且為newsite.com/div-services/xyx,則可以正常使用。
我很茫然,任何幫助將不勝感激。 我只是不明白為什么我不能檢測到正斜杠/
僅供參考,我弄清楚了為什么它不起作用(.*)(/div-services/)(.*) becomes {R:1}(/div/){R:1}
這是因為輸入在第一個正斜杠之后開始,所以我假設這是整個URL,這就是為什么我的正則表達式有效但實際上不起作用的原因。 就像它在運行時一樣,它僅在第一個斜杠后使用URL,從而澄清了很多事情和邏輯解釋,說明即使我的許多模式都可以通過模式測試,但它們為何仍無法正常工作。 希望它可以節省其他人浪費我的時間和時間,因為我不清楚它是如何工作的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.