Добавление закодированных символов в URL прерывает htaccess - PullRequest
3 голосов
/ 02 августа 2010

Вот мой код:

RewriteEngine on
RewriteRule page/(.*) index.php?url=$1 [NC]

Когда я получаю доступ к page / http://google.com/ = работает нормально
Когда я получаю доступ к page / http% 3A% 2F% 2Fgoogle.com% 2F = сервер сообщает 404

Марти Лайн

Ответы [ 2 ]

2 голосов
/ 02 августа 2010

Полагаю, вам нужен флаг B ( escape ):

RewriteRule page/(.*) index.php?url=$1 [NC,B]

Это позволит избежать обратной ссылки ($ 1) перед добавлением ее в строку замены.

0 голосов
/ 14 августа 2010

Apache возвращает (несколько не интуитивно понятный) 404 в тех случаях, когда вы закодировали косые черты в запросе, но у вас не установлено AllowEncodedSlashes. Чтобы убедиться, что это так, проверьте журнал ошибок, который, вероятно, содержит следующую запись:

найдено% 2f (закодировано '/') в URI (Декодируется = '/ страница / http://google.com/'), возвращение 404

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...