微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

URL 重写到不同的文件夹 dpeths

如何解决URL 重写到不同的文件夹 dpeths

使用安装了 ReWrite 模块的 IIS7 和 ASP.NET 4.5

我在尝试重写目标 URL 与传入源请求 URL 的文件夹深度不同的请求时遇到问题。例如

我有一个传入请求,例如: mysitye.com/news/some-news-story

我要显示页面实际上是在根级别 mysitye.com/newsitems.aspx

因此,在我的全局应用程序“Begin_Request”模块中,我找到了具有该 SEO_friendly URL 的故事的 ID#(数据库键)——将其命名为 X——然后写入:

Context.ReWritePath(“newsitems.aspx?id=X”)

这给了我一个 404 错误...所以我尝试

Context.ReWritePath(“../newsitems.aspx?id=X”)

啊哈 - 宾果游戏.. 除了现在这页面上的引用,例如,样式表现在中断

除非重写为:

这一切都很好,但这带来了许多后果性的问题(不仅仅是这些——例如 img src 属性也会中断,&tc)

我还缺少什么(除了几个脑细胞,是的,谢谢!)

(而且,如果你想知道我为什么不使用 web.config,那是因为我什至无法开始接近编写有效的规则......并且怀疑无论如何都会出现同样的问题。)

解决方法

调整您的路径以在开头使用 ~/ 以从根开始,然后从那里开始使用完整路径。这将使您的站点从任何目录中提取文件,而不是从 .. 目录中提取文件,该目录仅比当前目录高一级。

因此,如果 newsitems.aspx 在您的顶级目录中,您将使用 ~/newsitems.asp?id=x。对于您的 styles.css,请使用 ~/css/styles.css

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。