所以我在IIS6和.net 2.0框架上运行子文本1.95。我想做的是为在子文本系统中发布的特定文章创建一个漂亮的虚荣URL。虚荣网址应如下所示:mydomain.com/blog/toc/,但它指向的子文章文章实际上有这样的路径:mydomain.com/blog/archive/2009/01/11/table-of -contents.aspx
我可能只是在IIS中设置一个转发来执行此操作,但我正在寻找一个更优雅的解决方案,不需要任何自定义IIS配置。我还想避免更改任何子文本核心代码,为自己留下升级路径。
是将default.aspx文件放在/ toc /文件夹中并将该页面转发到长路径的最佳解决方案吗?
提前致谢!
答案 0 :(得分:2)
请注意,这适用于Subtext 2.1.2及以下
在Web.config中处理URL匹配。您可以搜索如下所示的行:
<HttpHandler pattern="(?:/archive/\d{4}/\d{2}/\d{2}/[-_,+\.\w]+\.aspx)$" controls="viewpost.ascx,Comments.ascx,PostComment.ascx"/>
然后改变那里的正则表达式。不幸的是,Subtext将继续生成旧链接。在即将到来的Subtext 2.5中,情况略有改善。
另一个问题是,对于IIS 6,除非物理上存在/ toc /目录,否则IIS不会将请求移交给ASP.NET,因此您需要使用通配符映射来实际执行此操作。 / p>
目前,我认为您可能需要通过IIS中的某种URL重写isapi过滤器来实现此目的,以实现您想要的目标。
答案 1 :(得分:0)
感谢Phil。
的信息我最终只是创建了一个/ toc /文件夹,并且有一个default.aspx文件重定向到博客文章。这可能是最简单的解决方案,只花了我一分钟来实施。