IIS7重写模块和ASP.net Request.PhysicalPath

发布于 2025-01-05 11:38:53 字数 768 浏览 0 评论 0原文

我的任务是为客户创建面包屑功能。他们当前的网站设置为基于 XML/文件。每个 .aspx 页面都有 N 层深度,并有一个控件连接到其各自的 .xml 文件。

我决定通过页面目录结构来实现面包屑。我正在获取物理路径,剥离根目录,分割目录,并将这些部分用作我的面包屑。他们的所有文件夹都以驼峰命名法命名,因此我使用驼峰命名法来分解单词以用于显示目的。

例如:站点可能看起来像

Home

-- SubDir 1

------ SubDir 1.1

---------- MyPage.aspx

-- SubDir 2

------ MySecondPage.aspx

如果您在“ MyPage.aspx”..您获得的面包屑是:

首页 ->子目录 1 ->子目录 1.1 ->我的页面

这是我遇到的问题。客户端还使用 IIS7 重写模块来强制使用小写 URL。问题在于,我在 Request.PhysicalPath 调用中返回的值全部是小写,因此我的显示文本不起作用(因为它依赖于 CamelCase)。如果我关闭 IIS7 强制,它会显示如上。如果没有,我会得到:

Home ->子目录 1 ->子目录 1.1 -> mypage

是否有办法通过 IIS7 重写模块强制使用小写 URL,而不影响 Request.PhysicalPath(或 Request.PhysicalApplicationPath)调用?

谢谢

I've been tasked with creating a bread crumb functionality for a client. Their current website is setup to be XML/file based. Each .aspx page is N levels deep with an control hooked up to its respective .xml file.

I've decided to implement the bread crumbs via the pages directory structure. I'm grabbing the physical path, stripping the root, splitting the directories, and using the parts as my breadcrumb. All of their folders are named in CamelCase, so I am using the camel casing to break up the word for display purposes.

e.g: Site may look like

Home

-- SubDir 1

------ SubDir 1.1

---------- MyPage.aspx

-- SubDir 2

------ MySecondPage.aspx

If you are on "MyPage.aspx".. the breadcrumbs you get are:

Home -> Sub Dir 1 -> Sub Dir 1.1 -> My Page

Here's the issue I am having. The client is also using IIS7 Rewrite Module to enforce lower-case URLs. The problem with this, is that the value I get back in my Request.PhysicalPath call is all lowercase, so my display text does not work (because it is relying on CamelCase). If I turn off the IIS7 enforcement, it displays as above. If not, I'll get:

Home -> subdir 1 -> subdir 1.1 -> mypage

Is there anyway to enforce lower-case URLs via the IIS7 Rewrite module without affecting the Request.PhysicalPath (or Request.PhysicalApplicationPath) calls?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

缪败 2025-01-12 11:38:53

我认为在这种情况下你不能依赖 Request.PhysicalPath 。

尝试使用此问题中的方法用于获取正确大小写的实际文件名

I think you cannot rely on Request.PhysicalPath in this case.

Try using approach from this question for getting actual file name in proper casing

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文