【发布时间】:2011-08-13 01:14:29
【问题描述】:
我是 ASP.NET 的新手。我创建了一个 Web 应用程序并决定使用 url 重写。我尝试了几种解决方案,例如http://urlrewriting.net 和http://urlrewriter.net/index.php/support/configuration
这些解决方案在我的本地主机上运行良好。但是当我将它上传到共享托管服务提供商时,我的所有网页都会出现 500 个内部服务器错误。
网络托管服务提供商告诉我 HttpModules 和 HttpHandlers 与 IIS 集成管道模式不兼容。他们说我应该将我的设置移动到 system.webServer ...我尝试这样做,但一定是在某个地方搞砸了,因为我现在收到 404 错误。有人可以告诉我如何让 url 重写适用于我的场景吗?这是我原来的 web.config 的样子:
<configSections>
<section name="urlrewritingnet"
restartOnExternalChanges="true"
requirePermission ="false"
type="UrlRewritingNet.Configuration.UrlRewriteSection,
UrlRewritingNet.UrlRewriter" />
</configSections>
<system.web>
<compilation debug="true" targetFramework="4.0"></compilation>
<httpModules>
<add name="UrlRewriteModule"
type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />
</httpModules>
</system.web>
<urlrewritingnet
rewriteOnlyVirtualUrls="true"
contextItemsPrefix="QueryString"
defaultPage = "default.aspx"
defaultProvider="RegEx"
xmlns="http://www.urlrewriting.net/schemas/config/2006/07" >
<rewrites>
<add name="Rewrite" virtualUrl="^~/([^\/]+)/(\d+)$"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/$1.aspx?id=$2"
ignoreCase="true" />
<add name="Rewrite" virtualUrl="^~/(search|administrator|Default|logout)$"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/$1.aspx"
ignoreCase="true" />
</rewrites>
</urlrewritingnet>
【问题讨论】:
标签: asp.net mod-rewrite