Какое регулярное выражение я использую в htaccess RewriteRule для сопоставления% в URI? - PullRequest
0 голосов
/ 09 ноября 2011

Когда пользователь вводит это в браузер: http://cauzoom.com/collection/something0%d Я хочу, чтобы они заканчивались здесь: http://cauzoom.com/collection/index.html?pname=something

Мое текущее правило перезаписи htaccess выглядит так:

RewriteRule ^collection/([a-z0-9\-\%]+)$ collection/index.html?pname=$1 [NC,L]

... но это не удалось.Когда я делаю это:

RewriteRule ^collection/(.+)$ collection/index.html?pname=$1 [NC,L]

... это также не удается.Я знаю, что% - это защищенный символ регулярного выражения, но перед ним ДОЛЖЕН работать символ "\", верно?Есть предложения?

1 Ответ

0 голосов
/ 09 ноября 2011

% не является метасимволом регулярного выражения, проблема в том, что он используется для кодирования символов в URL, поэтому вы не можете просто использовать литерал % в URL, поскольку он предназначен для запуска последовательности, которая идентифицирует специальный символ: ссылка

Если вы хотите, чтобы в URL был реальный %, вы должны закодировать его как %25.

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