#regex #mod-rewrite
#регулярное выражение #переписать мод
Вопрос:
Я пытаюсь написать правило mod_rewrite, используя регулярное выражение, и я немного новичок в отношении некоторых задействованных процессов.
Я считаю, что могу делать то, что хочу, если смогу понять, как правильно использовать это регулярное выражение.
String is http://www.a.com/b.css?v=1234
Я знаю, что могу получить b.css?v=1234 с помощью регулярного выражения
([^/] $)
То, что я ищу, сгруппировано так, чтобы %1 было b.css, а %2 — 1234. Любая помощь приветствуется. Спасибо.
Ответ №1:
На основе предоставленного вами URL-адреса:
http://www.a.com/b.css?v=1234
Вы можете использовать:
/(w .w{3})?v=(d )
Для java не забудьте экранировать обратную косую черту в:
/(\w \.\w{3})\?v=(\d )
Надеюсь помочь
Ответ №2:
Вам нужно как Условие, так и одно или несколько правил.
Один из нескольких способов сделать это, протестированный на Apache 2.2 и 2.4:
RewriteCond %{QUERY_STRING} v=(d )
RewriteRule ^([^/]*) DoSomethingWithFile_$1_AndDigits_%1?
- Входной URL-адрес:
www.yoursite.com/b.css?v=1234
%1
содержит1234
$1
содержитb.css
- Переписанный URL-адрес:
www.yoursite.com/DoSomethingWithFile_b.css_AndDigits_1234