none
请教关与URL重写的一些问题 RRS feed

  • 问题

  • 1、asp.net3.5(C#)中大家都是用什么组件进行URL重写的?URLRewriter.dll是不是有点老了?

    2、URLRewriter.dll对中文是不是支持不好呀?

    3、我在使用URLRewriter.dll进行网站URL重写时,发现英文没有问题。只出现中文就不管用了,尤其是搜索页,关键字都是中文。我的所有页面编码都是gb2312。请问是怎么回事呀?

    地址效果:http://127.0.0.126/Search/ClassID/3/SearContent/%E5%BC%80/

    2010年4月26日 17:09

答案

  • 结帖吧.同样的代码,URLRewriter.dll在IIS6中没有问题.可是在IIS7中对中文支持就不行了.在此希望大家在用URLRewriter.dll时应该注意一下这个问题.
    • 已标记为答案 hkstb 2010年5月8日 15:36
    2010年5月8日 15:36

全部回复

  • 你好,

    不知道你有没注意到,在百度里面输入中文字符点击查询后,在url栏目里出现了类似于你上面地址的看不懂的字符。÷

    其实这只是一个编码处理,是很正常的。

    目前url重写有几种方式,其中一种也就是你说的使用URLRewriter,这种方式使用起来是最简单的。可以直接在web.config做配置处理。

    应该不会出现你说的对中文支持不好的问题。

    关于你说的发现中文就不管用了是怎么回事,能否描述下?如果你在web.config中的正则表达式中有些处理,不知道你是否包含了中文的正则表达式呢。

    关于重写可以参考下面的文档。

    http://msdn.microsoft.com/zh-cn/library/ms972974.aspx


    Microsoft Online Community Support
    2010年4月28日 2:27
  • 终于有人回答了,谢谢。

    web.config中规则是这样写的:

    <RewriterRule>
        <LookFor>~/Search/ClassID/(\d+)/SearContent/(.)/</LookFor>
        <SendTo><![CDATA[~/Web_Article_Search.aspx?ClassID=$1&SearContent=$2]]></SendTo>
       </RewriterRule>

    比如搜索“开”,点击搜索按钮后就变成“会”。不知道怎么回事。编码都gb2312的呀。我甚至用UrlEncode和UrlDecode进行转换也不行。郁闷。

    2010年4月28日 16:38
  • 没有人遇到这种情况吗?给兄弟指条明路吧。
    2010年5月1日 6:18
  • 你好,

    你能不能说说这个url中怎么进行中文字符编码的。

    我觉得你在进行搜索的时候用UrlEncode把要搜索的关键字进行编码,然后在后台获取后在UrlDecode.

    或者能否采用post的方式,不要采用get的方式试试。

    我这边有个项目也有搜索的需求,而且是两种语言,但是我是用post的方式把关键词发送到服务器端,没有出现你说的这种情况。

    如果不能解决能否提供点代码。谢谢。


    Microsoft Online Community Support
    2010年5月3日 7:37
  • 还是不行,弄不好是IIS7的事,可能URLRewriter.dll在IIS7中运行有问题.回来找个IIS6的机器试试.

    2010年5月5日 12:09
  • 结帖吧.同样的代码,URLRewriter.dll在IIS6中没有问题.可是在IIS7中对中文支持就不行了.在此希望大家在用URLRewriter.dll时应该注意一下这个问题.
    • 已标记为答案 hkstb 2010年5月8日 15:36
    2010年5月8日 15:36