htaccess не переписывает как задумано! - PullRequest
0 голосов
/ 04 февраля 2011
RewriteRule ^coaching/complete\sin\s\(30\smin,\s1\shour...\)    

http://www.example.com/coaching/complete+in+%2830+min-+1+hour...%29-11

Ожидаемый вывод

 http://www.example.com/coaching/complete+in+(30+min-+1+hour...)-11

однако он выдаёт вывод как

http://www.example.com/coaching/complete+in+830+min-+1+hour...9-11

В чем проблема в моемкод

Ответы [ 2 ]

1 голос
/ 04 февраля 2011

проблема в том, что% 2 на самом деле интерпретируется mod_rewrite как обратная ссылка на совпадение второй группы последнего соответствующего шаблона RewriteCond.

Если такой ссылки нет, она просто раскрывается как пустая строка.

Таким образом, вы должны сначала экранировать символы процента, как это:

RewriteRule ^coaching/complete\sin\s\(30\smin,\s1\shour...\) http://www.example.com/coaching/complete+in+\%2830+min-+1+hour...\%29-11

Однако вам также нужно использовать флаг [NE], если вы действительно хотите, чтобы эти символы отображались как есть ввыходной URL, иначе mod_rewrite перенесет их в '(' и ')'.

1 голос
/ 04 февраля 2011

%2 является справочным значением в mod-rewrite, поэтому, когда вы пытаетесь использовать %28 и %29 для фигурных скобок, это неправильно.Попробуйте просто использовать ( и ).

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