我们使用IIS URL重写模块,就像这样
<rule name="RewriteSearch" stopProcessing="true">
<match url="^Search/([_0-9a-z+-]+)" />
<action type="Rewrite" url="CommonPages/Search.aspx?term={R:1}" />
</rule>
http://www.tickettail.com/Search/NormalText123 工作正常
但是...
http://www.tickettail.com/Search /ราคัดมาใ
(这是泰语) 将不会。 如何修改匹配以允许外来文本?
由于
答案 0 :(得分:2)
您要匹配的正则表达式只接受字符_
,0
到9
,a
到z
,+
和-
。为了接受所有字符,您必须将正则表达式修改为例如(.+)
(这会接受任何字符,并且至少需要一个字符。
其次,为了将任何字符正确传递到搜索页面,您必须使用内置的{UrlEncode:{}}
函数对该术语进行URL编码。还要确保页面可以处理并输出UTF-8。
以下规则有效:
<rule name="RewriteSearch" stopProcessing="true">
<match url="^Search/(.+)" />
<action type="Rewrite" url="CommonPages/Search.aspx?term={UrlEncode:{R:1}}" />
</rule>