http не найдена проблема, когда URL имеют символ% - PullRequest
1 голос
/ 05 июля 2011

Показывает много URL, поскольку 404 не найден.Конечно, в URL есть неправильно сформированная строка запроса.

http://www.example.com/ref=http%3A%2F%2Fwww.example.org/

Bbove url не может достигнуть .htaccess проверки.

RewriteRule ^(.*)$ index.php?request_url=$1 [QSA,L]

Если этот URL достигает / проходит вышеупомянутый .htaccess Правило, я могу просто добавить R=301, но этот URL не достигает / не проходит через это .htaccess правило и показывает ошибку 404.

1 Ответ

0 голосов
/ 30 августа 2017

это не будет работать, потому что URL-адреса закодированы и будут декодированы как (%2F для / и %5C для \) соответственно.Apache имеет ограничения безопасности для таких запросов, проверьте эти URL для получения дополнительной информации

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0450

http://securitytracker.com/id/1018110 (см. Раздел 4. Решение)

Чтобы заставить его работать, либо пропустите декодированный запрос, либо включите AllowEncodedSlashes в конфигурации apache и перезапустите службу apache

http://httpd.apache.org/docs/current/mod/core.html#allowencodedslashes

...