URLRewriter适用于localhost,但不适用于服务器

时间:2011-11-18 10:22:18

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

我在localhost(ASP.NET 4)上使用了这些角色并且它可以工作:

  <rewriter>
    <rewrite url="~/man/(.+)" to="~/man/$1" processing="stop" />
    <rewrite url="~/man/^(/.+(\.gif|\.png|\.jpg|\.ico|\.pdf|\.css|\.js|\.axd)(\?.+)?)$" to="~/man/$1" processing="stop" />
    <rewrite url="~/files/^(/.+(\.gif|\.png|\.jpg|\.ico|\.pdf|\.css|\.js|\.axd|\.pdf|\.doc|\.ppt)(\?.+)?)$" to="~/files/$1" processing="stop" />
    <rewrite url="~/man/" to="~/man/default.aspx" processing="stop"/>
    <rewrite url="~/style/(.+)" to="~/style/$1" processing="stop" />
    <rewrite url="~/images/(.+)" to="~/images/$1" processing="stop" />
    <rewrite url="^(/.+(\.gif|\.png|\.jpg|\.ico|\.pdf|\.css|\.js|\.axd)(\?.+)?)$" to="$1" processing="stop" />
    <rewrite url="~/register.aspx" to="~/register.aspx" processing="stop" />
    <rewrite url="~/(.+)" to="~/default.aspx?pn=$1" />
  </rewriter>

例如,http://localhost/myweb/foo引用http://localhost/myweb/default.aspx?pn=foo,但在网络服务器上http://myweb.xx/foo表示'404 - File or directory not found.'

2 个答案:

答案 0 :(得分:0)

哪个版本的IIS有Server,因为在II6中有不同的方式而在II7中有不同的方式。

答案 1 :(得分:0)

检查您的Web.Config的哪个部分已配置规则,因为System.web用于VS Development Server(“Cassini”),IIS6和System.WebServer用于IIS7。

您还可以查看here