Apache mod_rewrite не соответствует URL, содержащему символ процента - PullRequest
1 голос
/ 25 сентября 2011

Если правило:

RewriteRule myurl /newurl

Матчи:

http://localhost:8080/test/xxxmyurlyyy

Почему это не соответствует?

http://localhost:8080/test/xxxmyurly%EDyy

EDIT:

Я только что обнаружил, что кодировка utf-8 прекрасно работает. Если я лучше использую %C3%AD, чем %ED, все в порядке. Мне все еще нужно включить юникод.

1 Ответ

1 голос
/ 25 сентября 2011

Кажется, это просто отлично. Учитывая это:

RewriteEngine On
RewriteLog /tmp/rewrite.log
RewriteLogLevel 5
RewriteRule myurl /stackexchange/foo.html

Если я получу это:

curl http://localhost/test/xxmyurly%EDyy

Я вижу это в /tmp/rewrite.log:

(3) applying pattern 'myurl' to uri '/test/xxxmyurly?yy'
(2) rewrite '/test/xxxmyurly?yy' -> '/serverfault/foo.html'

И я получаю именно то, что ожидаю (документ с содержанием «это тест»).

Я подозреваю, что ваша проблема не в том, что вы думаете. Включить RewriteLog и Посмотрите, что появляется, а затем опубликуйте свои результаты здесь. Кроме того, видя больше (в идеале, все) ваша конфигурация также поможет.

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