Я использую ISAPI_Rewrite v2 для перезаписи URL довольно долгое время.Сайт на иврите, и поэтому страницы 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 я наткнулся на этот URL:
http://mysite.com/%u05F6%u05E5%u05F8_%u05F7%u05F9%u05F8
То же правило URL, что и в моем примере, нов юникоде!И, по-видимому, ISAPI_Rewrite v2 не обрабатывает эти URL-адреса, и я получаю сообщение «Страница не найдена».
Есть также более сложные страницы, например, отправка части URL-адреса в качестве параметра запроса.Который также в Unicode.
Я, хотя только на одном решении - сделать те же правила, на этот раз в Unicode и иметь дело с Unicode в коде позади.Но есть 2 проблемы с решением:
- URL отображается для пользователя в Unicode, а не на иврите.
- Больше кода в коде, за которым, по моему мнению,не должно быть.Я имею в виду, что этот сценарий можно / нужно обработать, прежде чем он достигнет кода ..
Есть мысли?
Спасибо.
РЕДАКТИРОВАТЬ: Может быть, это перенаправление может быть достигнуто с помощью IIS6 как-то?Когда IIS идентифицирует URL-адрес Unicode, он преобразует его в UTF-8 и перенаправляет страницу.