#php #regex #apache #.htaccess
#php #регулярное выражение #apache #.htaccess
Вопрос:
У меня есть следующее правило:
RewriteRule ^(image/[0-9]*/(.*))?$ image.php?prettyUrl=trueamp;nav=$1 [QSA,NC,L]
Предполагается, что это заменит
http://mysite.com/image/12345/imagename.png => http://mysite.com/image.php?pretyUrl=trueamp;nav=image/12345/imagename.png
Для конкретного случая, когда симпатичный URL содержит ‘/image/’, массив $_GET пуст. Если я использую другое имя, например ‘images’ или ‘asdfg’, массив $ _GET будет содержать как pretyUrl, так и nav.
Есть идеи, почему?
Спасибо!
Комментарии:
1. Опубликуйте какой-нибудь пример URL для вашего конкретного случая
/image
2. Это 90-процентная проблема с регулярными выражениями? Слишком плохо, что люди недостаточно знают о регулярных выражениях, чтобы изолировать свои проблемы. Я утешил, специально написал, могу получить точный ответ через 10 секунд. Просто к вашему сведению.
3. Вероятно, это не проблема с регулярным выражением, и в этом случае не добавляйте тег regex в следующий раз. привет
4. Есть ли это правило в
.htaccess
файле? Если да, то в каком каталоге он расположен?
Ответ №1:
Если правило перезаписи должно работать для каждого URL в image/
, (и /1234/
часть цифр не обязательна), то это может быть тем, что вы ищете:
RewriteRule ^(image(/.*)?)$ image.php?prettyUrl=trueamp;nav=$1 [QSA,NC,L]
Если вы можете сформулировать свой вопрос немного конкретнее, можно найти лучшее решение.