Мне нужно сопоставить два случая
js/example_directory/example_name.js
и
js/example_directory/example_name.js?12345
(где 12345 - это строка цифр неизвестной длины, а каталог может быть безграничным по глубине или вообще не существовать)
Мне нужно захватить в обоих случаях все между js/
и .js
и , если ?
существует, захватить цифровую строку после ?
Это то, что я имею до сих пор
^js/(.*).js\??(\d+)?
Это работает, кроме как также захватывает
js/example_directory/example_name.js12345
Я хочу, чтобы регулярное выражение игнорировало это. Есть предложения?
Спасибо всем!
Проверьте свои шаблоны здесь
Ответ:
Используя информацию Гамбо, мое последнее правило переписывания выглядит следующим образом.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{QUERY_STRING} ^\d*$
RewriteRule ^js/(.*)\.js$ js.php?f=$1.js&v=%0 [L]
</IfModule>