URLRewriter работает на локальном хосте, но не на сервере - PullRequest
0 голосов
/ 18 ноября 2011

Я использовал эти роли на локальном хосте (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 голосов
/ 18 ноября 2011

Проверьте, в каком разделе вашего Web.Config вы настроили свои правила, так как System.web используется для VS Development Server ("Cassini"), а IIS6 и System.WebServer используются для IIS7.

Вы также можете посмотреть здесь

0 голосов
/ 18 ноября 2011

Какая версия IIS есть Server, потому что в II6 есть другой путь, а во II7 есть другой путь.

...