ASP.Net URL在GoDaddy上重写500错误

时间:2012-06-10 18:07:07

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

我想创建一个非常简单的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>

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

所以我的问题是,我在网上错过了什么.Config?他们声称这是一个脚本问题,并且URL模块已正确安装并在其IIS 7服务器上运行。有什么方法可以用脚本来确认吗?

1 个答案:

答案 0 :(得分:0)

我遇到了完全相同的问题,并花了太多时间尝试使用GoDaddy支持来使Microsoft URL Rewrite工作。最后,我根据this post启动并运行了ManagedFusion重写器。

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

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

对于记录,这是我对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,但我删除了<defaultDocument enabled="false" />行。