Апач - PullRequest
       21

Апач

4 голосов
/ 03 февраля 2011

Как переписать обратную косую черту '\' с косой чертой '/' в Firefox?

Chrome, IE, Safari, Opera имеет встроенную браузер, перезаписывает обратную косую черту с косой чертой.
Но Firefox 3.6.13 возвращает 404 страницу ошибки .

# Why Firefox returns 404 error page?
RewriteCond %{REQUEST_URI} (.*)\\(.*)
RewriteRule .* %1/%2 [R=301,L]

Ответы [ 2 ]

2 голосов
/ 06 февраля 2011

Это ошибка Apache и FF, https://issues.apache.org/bugzilla/show_bug.cgi?id=35256
Надеюсь, это будет исправлено в скором времени.

  1. По умолчанию AllowEncodedSlashes должен быть включен ивероятно, даже не рекомендуется....
  2. Нигде в RFC нет обратной косой черты (\), указанной в качестве зарезервированного символа.Поэтому %5C
    должен всегда декодироваться так же, как %7E преобразуется в тильду (~).

Чтобы решить это на Apache:добавьте AllowEncodedSlashes On в VirtualHost httpd-vhosts.conf или httpd.conf и .htaccess:

RewriteEngine On 
RewriteCond %{REQUEST_URI} ^(.*)\\(.*)$
RewriteRule .* %1/%2 [R=301,NC,L]
0 голосов
/ 03 февраля 2011

Удивительно, но это похоже на правильное поведение. Обратная косая черта не входит в число символов, разрешенных в URL-адресе HTTP или HTTPS (согласно RFC 1738 ), поэтому их следует экранировать. Обратите внимание, что RFC явно упоминает обратную косую черту как небезопасный символ:

Другие персонажи небезопасны, потому что Известно, что шлюзы и другие транспортные агенты иногда изменяют такие персонажи. Это символы "{", "}", "|", "\", "^", "~", "[", "]" и "` ".

Все небезопасные символы всегда должны быть закодированы в URL.

Другими словами, Firefox делает правильные вещи, даже если он разрывает страницы, которые неправильно используют обратную косую черту (в основном из-за путаницы синтаксиса URL с синтаксисом пути Windows). Другие браузеры пытаются прочитать мысли автора страницы, и перед отправкой запроса они конвертируют обратные слэши в прямые косые черты; Хорошая ли это вещь, вопрос мнения.

Вы пытались найти соответствие на экранированной версии обратной косой черты - %5C?

...