2013-10-08 67 views
2

我有一個複合C1 CMS網站。複合C1 - '網址別名',重定向網址與查詢字符串

爲了保持SEO汁,我需要重定向一些舊的 - 主要是博客的網址 - 是這樣的:http://www.mydomain.com/en/news/news.php?b=68http://mydomain.com/en/Blog/2013/04/30/Friendly-Article-Name

http://www.mydomain.com/en/news/news.php?b=69http://mydomain.com/en/Blog/2013/04/30/Another-Friendly-Article-Name

大約有100鏈接重定向。

'URL別名'模塊似乎很好,直到你添加一個查詢字符串(?b = 68以上) - 然後停止工作。

如何重定向幾個相同的URL,每個URL都有不同的查詢字符串?

回答

2

這絕對是Url別名包中的一個錯誤。

解決這個問題的最快方法很可能就是推出自己的http模塊,至少在發佈修補程序之前。 你可以從GitHub的軟件包回購中獲取源代碼,並調整它以解決問題,確保從web.config註銷捆綁的http模塊並註冊自己的代碼。

當前的HTTP模塊源是在這裏:https://github.com/CPHCloud/c1packages-urlaliases/blob/v1.0.2/CphCloud.Packages.UrlAlias/UrlAliasHttpModule.cs

變化incomingUrlPath值使用PathAndQuery代替AbsolutePath,像這樣:

... 
static void httpApplication_BeginRequest(object sender, EventArgs e) 
    { 
     var httpApplication = (HttpApplication)sender; 
     var incomingUrlPath = HttpUtility.UrlDecode(httpApplication 
      .Context.Request.Url.PathAndQuery.TrimEnd(new[] { '/' })); 
.... 

在你的web.config文件,你應該註銷URL別名'handler

<!--add name="UrlAlias" type="CphCloud.Packages.UrlAlias.UrlAliasHttpModule, 
    CphCloud.Packages.UrlAlias, 
    Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /--> 

並且註冊您自己的

<add name="CustomUrlAlias" type="CphCloud.Packages.UrlAlias.UrlAliasHttpModule, 
    YourAssemblyName, 
    Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/> 

完全披露:我是URL別名包的作者。

+0

非常感謝。 *開發人員*(眨眼睛)將全面修復它,你有什麼想法嗎? – niico

+0

複合材料必須在提交後審查包裝,因此在幾天內應該啓動。當我提交它時,我會將它添加到Github回購中作爲預發佈,併發布到構建的鏈接。然後,您可以在Composite將其發佈到其附加市場之前將其作爲本地包安裝。 –

+0

優秀 - 我可以等幾天。非常感謝。我從來沒有'更新'一個包 - 我卸載然後重新安裝? – niico

相關問題