3

我有一个问题,改变我在 Asp.Net 应用程序中进行 Url 重写的方式已经改变了 IIS 日志文件,看起来像这样:

/page/ 80 等等.. /page/anotherpage/ 80 等等...

default.aspx page=1 80 等... default.aspx page=2 80 等...

我有点困惑这是怎么发生的。是否有我缺少的设置(Win 2008,ASP.NET 2.0) 中的“runAllManagedRequests”设置也已打开。

4

4 回答 4

2

URL 重写是否由模块完成?如果是,那么重写模块可能在日志模块之前运行。您可以更改模块在 IIS 管理器中运行的顺序。进入IIS 管理器中的模块并选择查看有序列表...;然后你可以按照你想要的顺序上下移动模块。

于 2009-01-07T17:36:17.890 回答
0

我不知道您使用什么方法来重写 URL,但我知道使用 Apache(以及 Windows 上的 ISAPI_Rewrite)您必须在 .htaccess 文件(或等效文件)中的每个规则中添加一个标志以告诉它记录重写的 URL,而不是原始 URL。

于 2008-12-05T12:42:54.613 回答
0

这个问题是重复的。

我遇到了完全相同的问题。解决此问题的一种方法是使用 Server.Transfer 而不是 Context.RewritePath。Server.Transfer 不会重新启动整个页面生命周期,因此仍会记录原始 URL。确保为“preserveForm”参数传递“true”,以便 QueryString 和 Form 集合可用于第二页。

于 2009-02-17T18:36:25.403 回答
0

据我所知,这将是设计使然,因为 IIS 只接收重写的 URL 而不是原始 URL,因为重写的 URL 被发送到 .Net 应用程序及其进行转换的应用程序。

于 2008-12-05T15:40:46.080 回答