使用 - 在C#.net web.config中替换Url中的%20

时间:2013-05-09 07:30:28

标签: c# asp.net-mvc url-rewriting

我正在尝试重写C#.net framework = 4.0和visual studio版本2010中的url,我在web.config文件中编写了以下代码行,但它不影响url。我想用“ - ”

替换url中的%20
<rewrite>
  <rules>
    <rule name="Myrule">
      <match url="(.)\ (.)" />
      <action type="Rewrite" url="{R:0}-{R:1}" />
    </rule>
  </rules>
</rewrite> 

在Chrome中它显示%20,在Mozilla中显示“”空格,如何用短划线替换空格“ - ”?

3 个答案:

答案 0 :(得分:0)

也许尝试按照this tutorial尝试开发自己的自定义重写提供程序。

答案 1 :(得分:0)

更新:

我认为解决问题的唯一方法是编写自己的重写模块。这些文章可能有所帮助:

http://www.upperstrata.com/insights/2010-02-26/using-iis7-url-rewrite-module-with-asp-net-routing/

http://www.jphellemons.nl/post/URL-rewrite-with-aspnet-40-and-IIS7.aspx

我无法测试它,如果它以这种方式工作,我就不会测试它,但是尝试使用另一个正则表达式:

((%20)|\ )+

例如,应将此http://www.goo%20le.de / hfdhdhdhd之类的网址替换为此http://www.goo-le.de-/-hfdhdhdhd

更新:

它适用于正则表达式测试程序http://regexpal.com/

enter image description here

答案 2 :(得分:0)

试试这个,希望这会奏效。

<%# Server.UrlDecode("www.stack%20overflow.com").Replace("%20", "-") %>