У меня есть следующее правило перезаписи:Nginx переписать переключатели каталоги
location ^~ /assets {
rewrite_log on;
rewrite ^/assets/(.*)/(.*)$ /websites/$host/themes/$1/assets/$2 break;
}
Так что, когда я прошу http://localhost/assets/theme1/css/style.css
я ожидаю, что переписать его следующим образом:
/websites/localhost/themes/theme1/assets/css/style.css
Вместо этого, он переписывает просьба об этом:
/websites/localhost/themes/theme1/css/assets/style.css
Но, когда я изменить правила перезаписи:
rewrite ^/assets/(.*)/test/(.*)$ /websites/$host/themes/$1/assets/$2 break;
И я прошу http://localhost/assets/theme1/test/css/style.css
все работает просто отлично.
Почему он переключает assets
с css
?
В качестве альтернативы вы можете сделать первый захват менее жадным, используя '(. *?)' Вместо '(. *)'. –
Спасибо! Я тоже попробую. :) – SomeCode