Вот мой код:
RewriteEngine on RewriteRule page/(.*) index.php?url=$1 [NC]
Когда я получаю доступ к page / http://google.com/ = работает нормально Когда я получаю доступ к page / http% 3A% 2F% 2Fgoogle.com% 2F = сервер сообщает 404
Марти Лайн
Полагаю, вам нужен флаг B ( escape ):
B
RewriteRule page/(.*) index.php?url=$1 [NC,B]
Это позволит избежать обратной ссылки ($ 1) перед добавлением ее в строку замены.
Apache возвращает (несколько не интуитивно понятный) 404 в тех случаях, когда вы закодировали косые черты в запросе, но у вас не установлено AllowEncodedSlashes. Чтобы убедиться, что это так, проверьте журнал ошибок, который, вероятно, содержит следующую запись:
AllowEncodedSlashes
найдено% 2f (закодировано '/') в URI (Декодируется = '/ страница / http://google.com/'), возвращение 404