【问题标题】:URLRewriting in web.config not workingweb.config 中的 URLRewriting 不起作用
【发布时间】:2013-08-15 05:54:27
【问题描述】:

有人要求我将 ASP.NET 4.0 网站从 GoDaddy 迁移到 Arvixe。我已经使用项目解决方案设置了 VS 2012,并将其配置为将站点发布到 Arvixe 服务器。在 web.config 中调整数据库连接字符串后,该站点可以正常工作。 叹息

但是,这是一个拥有庞大数据库和大量菜单项的大型网站。菜单项不起作用 - 我在大多数菜单项上都收到 HTTP 404 Not Found 错误。这些链接与 web.config 中的 url 重写有关。这些重写至少有 100 次,但我不知道为什么它们不起作用。

这是一个例子:

  <urlrewritingnet rewriteOnlyVirtualUrls="true" contextItemsPrefix="QueryString" xmlns="http://www.urlrewriting.net/schemas/config/2006/07">
    <rewrites>

       ...

       <add name="mycategory" virtualUrl="^~/my-stuff/(.+)$" redirectMode="Permanent" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/mycategory.aspx?rct=$1" ignoreCase="true" />

       ...

    </rewrites>
  </urlrewritingnet>

我检查了这些行中的大部分,以确保在destinationUrl 中指定的 .aspx 确实存在并且确实存在。在上面的示例中,mycategory.aspx 存在于根文件夹中。

在这些重写生效之前我需要配置什么吗?像需要启用的东西 - 或者可能是 Arvixe 需要的某种支持?顺便说一句,这是安装在 Business Class ASP Pro 帐户上的。

更新

我觉得很傻,但是我进入 Arvixe 的控制面板,将 ASP.NET 从 4.0 更改为 4.0 Integrated Pipeline。这解决了上述问题,但导致了不同的问题......

尚未为此网站配置 DNS,因此我通过 IP 地址访问它。此时,主页加载正常,所有菜单项都正常工作。图片加载也很好,但是当我单击任何内容并转到新页面时,页面中的所有链接以及菜单项的 IP 地址都替换为“localhost”,这当然会破坏网站。

例如:

http://123.123.123.123/my-category/&lt;img src="123.123.123.123/images/myimage.png"/&gt;

被替换为:

http://localhost/my-category/&lt;img src="localhost/images/myimage.png"/&gt;

有没有人知道我该如何克服这个问题?

【问题讨论】:

    标签: asp.net iis url-rewriting


    【解决方案1】:

    对于这个问题让 SO 变得混乱,我深表歉意。根据我的更新,将 ASP.NET 从 4.0 更改为 4.0 集成管道解决了我最初的问题。我的第二个问题已通过更改 &lt;add key="SiteUrl" value="http://localhost/" /&gt; 解决。

    :S

    感谢任何考虑提供帮助的想法的人。希望这篇文章对其他人有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-13
      • 2018-02-01
      相关资源
      最近更新 更多