【发布时间】:2011-07-20 12:13:56
【问题描述】:
我使用 ISAPI_Rewrite v2 进行 url 重写已经有一段时间了。该网站使用希伯来语,因此页面网址。 ISAPI_Rewrite v2 不支持希伯来字符,但我通过对希伯来字符使用 UTF-8(Hex) 代码克服了这个问题。 这是一个例子:
RewriteRule ^/\%D7\%A6\%D7\%95\%D7\%A8_\%D7\%A7\%D7\%A9\%D7\%A8/$ /Contact.aspx [L,I]
RewriteRule ^/\%D7\%A6\%D7\%95\%D7\%A8_\%D7\%A7\%D7\%A9\%D7\%A8$ /Contact.aspx [L,I]
问题: 在 statcounter 查看我的热门页面时,我发现了这个网址:
http://mysite.com/%u05F6%u05E5%u05F8_%u05F7%u05F9%u05F8
这与我的示例中的 URL 规则相同,但使用的是 Unicode!显然 ISAPI_Rewrite v2 不处理这个 URL,我的用户得到“找不到页面”。
还有一些更复杂的页面,例如发送部分 URL 作为查询参数。这也是 Unicode。
虽然我只有一个解决方案 - 制定相同的规则,这次使用 Unicode 并在后面的代码中处理 Unicode。但是解决方案有两个问题:
- 以 Unicode 而非希伯来语为用户显示 URL。
- 代码中包含更多代码,在我看来,不需要。我的意思是,这种情况可以/需要在到达代码之前处理..
有什么想法吗?
谢谢。
编辑: 也许这种重定向可以通过 IIS6 以某种方式完成?当 IIS 识别 Unicode URL 时,它会将其转换为 UTF-8 并重定向页面。
【问题讨论】:
标签: unicode utf-8 url-rewriting iis-6 isapi-rewrite