【问题标题】:How to rewrite URL in an ASP.net site如何重写 ASP.net 站点中的 URL
【发布时间】:2014-05-10 11:15:54
【问题描述】:

我想重写一个 asp.net 站点中的 URL

我需要的是我不希望用户看到网站是用哪种语言创建的

即它不应该有www.examplesite.com/index.aspx作为地址

我希望它为www.examplesite.com/index

我不希望用户看到文件的扩展名

如果此问题与 Stackoverflow 无关,请将此问题重定向到 Stack Exchange 的相应站点。

感谢任何帮助。

【问题讨论】:

标签: asp.net .net vb.net url-rewriting


【解决方案1】:

您可以在 Global.asax 文件中的简单级别上执行此操作,如下所示:

Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
    ' Fires at the beginning of each request

    Dim path As String = HttpContext.Current.Request.Path

    If path.ToLower.EndsWith(".aspx") Then
        path = path.Substring(0, path.Length - 5)
        Response.Redirect(path, True)
    Else
        path += ".aspx"
        Context.RewritePath(path)
    End If

End Sub

如果您有其他请求的文件,例如 .png 文件,您可能需要一些额外的逻辑来过滤掉这些文件。

【讨论】:

    【解决方案2】:

    与您的问题相关的问题是 ASP.Net 中的URL Rewriting。对于 URL 重写有多种方法:在 IIS 中编写重写模块或使用 ASP.NET Web.config 文件。

    对于使用web.config 文件,您首先需要添加重写配置部分并根据您的要求在<rewrite > </rewrite> 标签中定义重写规则。

    更多详情:关注Link

    希望对你有帮助。

    【讨论】:

    • 感谢您的回复..!! Matt Wilko 提供的解决方案是最简单易行的..!!所以我已将他标记为答案,并且我已投票支持您的
    【解决方案3】:

    在 web.config 文件中,添加以下代码。

    <rewrite>
           <rules>
                <clear />
    
                    <rule name="exampleredirect" stopProcessing="true">
                        <match url="^index.aspx" ignoreCase="false" />
                        <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                        <action type="Redirect" url="/index" />
                    </rule>
            </rules>
    </rewrite>
    

    请参考以下链接。

    http://forums.asp.net/t/1910607.aspx?web+config+rewrite+rule

    【讨论】:

    • 我收到一个错误无法识别的配置部分rewrite
    • 我已经在System.WebServer 下添加了代码,现在我没有收到错误,但我仍然可以看到扩展名。我在 LocalHost 中检查它
    • 你需要在你的服务器上安装URL Rewrite module才能工作
    • 感谢您的回复..!! Matt Wilko 提供的解决方案是最简单易行的..!!所以我已将他标记为答案,并且我已投票支持您的
    【解决方案4】:

    我认为有一个 nuget 包,它叫做Friendly Urls

    【讨论】:

    • 感谢您的回复..!! Matt Wilko提供的解决方案是最简单最简单的一个..!!感谢您让我了解 Fiendly URL 的 ..! :)
    【解决方案5】:

    在 web.config 中,您必须添加一个名为 &lt;rewrite&gt; &lt;/rewrite&gt; 的部分,然后您将添加规则/规则名称,如下所示:

                <rewrite><rules><clear />
                   <rule name="redirectrule" stopProcessing="true">
                   <match url="^index.aspx" />
                   <conditions logicalGrouping="MatchAny" trackAllCaptures="false" />
                   <action type="Redirect" url="/index" />
                </rule></rules></rewrite>
    

    【讨论】:

    • 感谢您的回复..!! Matt Wilko提供的解决方案是最简单好用的..!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 2011-11-19
    相关资源
    最近更新 更多