c# - IIS URL 重写模块 : Get ApplicationPath

标签 c# asp.net iis url-rewrite-module

我正在寻找一种重写 url 的方法,以防 url 中的应用程序路径具有不同的大小写。由于应用程序路径可能因不同的部署而异,因此我需要动态访问它。有什么办法吗?

背景:

我正在将 cookie 的路径设置为应用程序路径。由于 cookie 路径区分大小写,我需要重写 url 以防它们大小写错误。我还希望有不需要使用 url 重写模块的替代方法。

示例

假设对于一个部署,应用程序的别名是“ApplicationA”(对于另一个部署,别名可能是“ApplicationB”)。

http://<host>:<port>/<applicationA or Applicationa or APPLicationA etc.>/<rest of the url>

Redirect to 

http://<host>:<port>/ApplicationA/<rest of the url>

最佳答案

不确定 REWRITE 在您的情况下是否是正确的操作,也许您应该使用 REDIRECT(永久),但下面是允许我在特定情况下获取应用程序名称的规则:

<system.webServer>
    <rewrite>
        <rules>
            <rule name="My Rule" stopProcessing="true">
                <match url="^(.+)" ignoreCase="false" />
                <conditions>
                    <add input="{REQUEST_URI}" pattern="TmP/.+" ignoreCase="false" negate="true" />
                    <add input="{REQUEST_URI}" pattern="tmp/(.+)" ignoreCase="true" />
                </conditions>
                <action type="Redirect" url="TmP/{C:1}" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

关于c# - IIS URL 重写模块 : Get ApplicationPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35081124/

相关文章:

c# - 为二维情况调整包装类

c# - 用于方法或属性的 Visual Studio UML 2010 代码生成

c# - Microsoft.Office.Interop.Outlook 错误 - 文件 filename.ics 不是有效的 Internet 日历文件

asp.net - 如何在dotnetnuke网站中编写global.ascx.cs代码?

iis - 是否可以在 Azure Web 角色上重新启动 IIS,而无需重新启动进程?

c# - WebClient:忽略 HTTP 500

asp.net - 使用 Web.Config 进行 Asp.net 表单例份验证登录后重定向不起作用

asp.net - 最佳 ASP.NET 应用程序部署方法

IIS 7.5 Express 新虚拟目录

.net - 回发不适用于 aspx 页面作为默认文档