2011-10-18 47 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