【问题标题】:ASP.Net URL Rewrite 500 Error On GoDaddyGoDaddy 上的 ASP.Net URL 重写 500 错误
【发布时间】:2012-06-13 19:47:35
【问题描述】:

我想创建一个非常简单的 URL 重写规则。我在本地使用带有 Visual Studio 2010 的 IIS 7 Express (XP)。我创建的规则(从示例 here 复制)在本地完美运行。但是,一旦我将它复制到我的托管服务器,我就会收到 500 错误。

摘自 web.Config:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
    <rewrite>
        <rules>
            <rule name="Rewrite to article.aspx">
                <match url="^article/([0-9]+)/([_0-9a-z-]+)" />
                <action type="Rewrite" url="article.aspx?id={R:1}&amp;title={R:2}" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

假设规则是破坏应用程序的原因,我删除了 rules 部分,但应用程序仍然抛出 500 错误。但是,如果我完全删除 rewrite 部分,应用程序会正确加载。

所以我的问题是,我的 web.Config 中是否缺少任何内容?他们声称这是一个脚本问题,并且 URL 模块已正确安装并在他们的 IIS 7 服务器上运行。有什么办法可以用脚本来确认吗?

【问题讨论】:

  • 有没有办法确定500错误的实际原因?
  • 没有。我尝试按照 GoDaddy 的说明添加调试输出,包括 ELMAH。不幸的是,异常被吞没了,这两种方法都没有产生堆栈跟踪。

标签: asp.net url-rewriting iis-7


【解决方案1】:

我遇到了完全相同的问题,并且花了太多时间尝试使用 GoDaddy 支持来让 Microsoft URL Rewrite 正常工作。最终,我基于this post 启动并运行了 ManagedFusion Rewriter。

我在启用 SSL 的 GoDaddy 4GH Ultimate Windows 主机上。我在根目录中安装了 WordPress(永久链接现在可以使用!),以及在虚拟目录中运行的其他 .NET 应用程序。

我真的希望这可以帮助人们避免尝试让 Microsoft URL Rewrite 在 GoDaddy Grid Hosting 上工作...

为了记录,这是我对 ManagedFusion 的重写规则,以正确处理 WordPress 永久链接:

RewriteEngine On

RewriteBase /

# wordpress admin folder rewrite rules
RewriteCond %{REQUEST_URI} ^wp-admin/
RewriteRule ^wp-admin/(.*) . /wp-admin/$1 [C]

# wordpress includes folder rewrite rules
RewriteCond %{REQUEST_URI} ^wp-includes/
RewriteRule ^wp-includes/(.*) . /wp-includes/$1 [C]

# wordpress general rewrite rules
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) /index.php [L]

我逐字使用链接帖子中的 web.config,除了我删除了 &lt;defaultDocument enabled="false" /&gt; 行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-06
    • 1970-01-01
    • 2014-03-29
    • 2015-11-27
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 2018-12-17
    相关资源
    最近更新 更多