Apache: Почему в IE .htaccess переписывает URL-адреса не латинских символов в urlencode? Как это решить? - PullRequest
0 голосов
/ 10 февраля 2011

Apache: почему в IE .htaccess перезаписывает URL-адреса, отличные от латинского, в urlencode? Как это решить?

domain.com // контакты перезаписывает на domain.com/%D0%BA%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D1%8B

RewriteEngine On
# Rewrite multiple slashes with single slash after domain
RewriteCond %{THE_REQUEST} ^[A-Z]+\s//+(.*)\sHTTP/[0-9.]+$ [OR]
RewriteCond %{THE_REQUEST} ^[A-Z]+\s(.*/)/+\sHTTP/[0-9.]+$
RewriteRule .* http://%{HTTP_HOST}/%1 [R=301,NE,L]

Ответы [ 2 ]

1 голос
/ 21 июля 2011

Кажется, что до сих пор нет решения для IE, и это зависит от кодировки адресной строки браузера. Как Chrome 12 показывает UTF-8 url domain.com/контакты, но на Ctr + C, Ctr + P вы получите Unicode url http://domain.com/%D0%BA%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D1%8B

0 голосов
/ 10 февраля 2011

@ Пекка: Да.В новейших браузерах любые URL имеют кодировку UTF-8.И они перезаписывают domain.com//контакты на domain.com/контакты, как это исключено.

Насколько я знаю, это не совсем правильно, и это может быть причиной, почемуон не работает для вас.

Какие новые браузеры на самом деле делают, они показывают вам URL в его собственной форме контакты, но внутренне все еще выполняет запрос впроцентная кодированная форма .

В этом, похоже, суть: вы что-то вводите, IE распознает символы Unicode, но последующее перенаправление 301 приводит к (правильному) процентному URL в кодировке.Современный браузер автоматически «декодирует» закодированный в процентах URL;IE и более старые браузеры могут этого не делать.

Я не знаю, есть ли обходной путь для этого.Одна вещь, которую вы могли бы попробовать, - это сделать так, чтобы PHP-скрипт выполнял перезапись URL-адресов, и чтобы этот сценарий перенаправлял на (хотя и недействительный!) URL-адрес URL:

<?php header("location: http://example.com/контакты"); ?>

Я понятия не имею, будет ли это работать,

Ссылка: Unicode-символы в URL-адресах

Связанные настройки IE

...