2011-10-18 85 views
3

我有一個網絡,其中有兩個版本:一個用西班牙文,一個用英文。它們位於不同的服務器和不同的域中。所以他們實際上表現爲兩個不同的網站。ASP .NET頁面名稱「alias」

我只有一個ASP .NET項目,根據域名,我用西班牙文或英文顯示所有文本。這是正確的。

我首先用西班牙語開發它,所以我的頁面名稱用西班牙文寫成,如「Buscar.aspx」(「Buscar」表示「搜索」)。

我也想翻譯頁面的名字,這樣在瀏覽器的地址欄裏就會出現英文名字。例如,對於我的「Buscar.aspx」頁面,我想在地址欄中顯示「Search.aspx」。

所以我的問題是:有什麼辦法來聲明某種「別名」(或其他機制),以便我可以通過一個單一的ASP處理請求到「Buscar.aspx」和「Search.aspx」 .NET頁面,但仍然出現在地址欄中作爲兩個不同的地址?

回答

3

URL Rewriting

你可以重寫Search.aspxBuscar.aspx

<rewrite> 
    <rules> 
    <rule name="Search"> 
     <match url="^Search.aspx" /> 
     <action type="Rewrite" url="Buscar.aspx" /> 
    </rule> 
    </rules> 
</rewrite> 

這些規則然後可以把你的英語web.config文件

+1

非常感謝。這非常有幫助。爲了使它完美,我將研究如何使該部分有條件的域名,以便我不必維護兩個不同的web.config文件。我想避免將一個文件錯誤地複製到錯誤的域名。 – ACB

3

看一看路由。你可以在這裏找到一些文檔:ASP.NET Routing

路由意味着你可以指定一個映射到某個ASPX的路徑。如果你根據你的語言設置切換路由配置,你有你需要的:)

+0

謝謝,這真的很有幫助。除了我的問題之外,在本文中,我發現了一些想法來改進我的網絡的其他方面。 – ACB