【问题标题】:ASP .NET page name "alias"ASP .NET 页面名称“别名”
【发布时间】:2011-12-09 22:56:22
【问题描述】:

我有一个网站,其中有两个版本:一个是西班牙语版本,一个是英文版本。它们位于不同的服务器和不同的域中。所以它们实际上表现为两个不同的网站。

我只有一个 ASP .NET 项目,并且根据域的不同,我会以西班牙语或英语显示所有文本。这是正确的。

我首先用西班牙语开发它,所以我的页面名称是用西班牙语写的,比如“Buscar.aspx”(“Buscar”的意思是“搜索”)。

我还想翻译页面名称,以便在浏览器的地址栏中显示英文名称。例如,对于我的页面“Buscar.aspx”,我希望在地址栏中显示“Search.aspx”。

所以我的问题是:有没有办法声明某种“别名”(或其他机制),以便我可以通过一个单一的 ASP 处理对“Buscar.aspx”和“Search.aspx”的请求。 NET 页面,但仍以两个不同的地址出现在地址栏中?

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    URL Rewriting

    您可以将Search.aspx 重写为Buscar.aspx

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

    然后可以将这些规则放入您的英文 web.config 文件中

    【讨论】:

    • 非常感谢。这很有帮助。为了使其完美,我将研究如何使本节以域为条件,这样我就不必维护两个不同的 web.config 文件。我想避免意外将一个文件复制到错误的域。
    【解决方案2】:

    看看路由。你可以在这里找到一些文档:ASP.NET Routing

    路由意味着您可以指定映射到某个 ASPX 的路径。如果您根据您的语言设置切换路由配置,您就有了您所需要的:)

    【讨论】:

    • 谢谢,这真的很有帮助。除了我的问题之外,在本文档中,我还发现了一些可以改进我的网络其他方面的想法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-14
    相关资源
    最近更新 更多