2010-10-06 77 views
1

我有一個網站目前在其頁面上使用.aspx擴展名。它獲得了Joomla轉換,並且.aspx擴展名不再適用。我需要它,這樣如果有人輸入.aspx擴展名,它會剛剛刪除該URL,因此當前網站上的所有SEO都不會中斷。如何正確地使用.aspx將URL重寫爲不帶.aspx的URL?

例如,我需要 www.arrc.com.php5-17.websitetestlink.com/services/managed-services.aspx 重寫/重定向到 www.arrc.com.php5-17.websitetestlink .COM /服務/託管服務

這是我在我的web.config:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
    <rewrite> 
    <rules> 
     <rule name="Migrate to PHP"> 
     <match url="^([_0-9a-z-]+)\.aspx" /> 
     <action type="Redirect" redirectType="Permanent" url="{R:1}" /> 
     </rule> 
     <rule name="Rewrite .aspx"> 
     <match url="^([_0-9a-z-]+)/?([_0-9a-z-]+)\.aspx" /> 
     <action type="Redirect" redirectType="Permanent" url="{R:1}/{R:2}" /> 
     </rule> 
    </rules> 
    </rewrite> 
    </system.webServer> 
</configuration> 

第一個URL匹配是有一個URL像services.aspx,而不是服務的任何網址/ managed-services.aspx

每當我去www.arrc.com.php5-17.websitetestlink.com/services/managed-services.aspx它給了我一個內部服務器錯誤,但www.arrc.com.php5-17.websitetestlink.com/services .aspx重寫正確。我能做些什麼來解決這個問題?

回答

1

他們貪心,切換順序。

<rule name="Rewrite .aspx"> 
    <match url="^([_0-9a-z-]+)/?([_0-9a-z-]+)\.aspx" /> 
    <action type="Redirect" redirectType="Permanent" url="{R:1}/{R:2}" /> 
    </rule> 

<rule name="Migrate to PHP"> 
    <match url="^([_0-9a-z-]+)\.aspx" /> 
    <action type="Redirect" redirectType="Permanent" url="{R:1}" /> 
    </rule> 
+0

哇,我從來沒有想過要做到這一點,但它的工作!非常感謝! – Derek 2010-10-06 19:58:47

0

兩個潛在的問題:

  1. 我想重寫,這將打擊他們安排妥當,這意味着第一個規則是要始終揭開序幕。嘗試切換規則的順序。

  2. 破折號應在[_0-9a-Z-]正常工作,但嘗試逃離衝刺。