У меня проблема с Nginx Rewrites
В настоящее время мое правило показано ниже
перезаписать ^ / i /(.*?)$ /i/$1.php last;
По сути, я хочу перенаправить все файлы .png в .php в каталоге / i. Однако кажется, что $ должен стоять в конце, чтобы я не мог
переписать ^ / i /(.*?)$. png /i/$1.php last;
У кого-нибудь есть решения?
Спасибо Бен
Запросы на файлы .png обрабатываются вашим location ~* \.(js|css|png|jpg|jpeg|gif|ico)$
. Просто остановите это от обработки файлов png и добавьте новое место, которое обрабатывает только их:
server {
location ~* \.(js|css|jpg|jpeg|gif|ico)$ {
# the same stuff you already had in here
}
location ~* ^(?<basename>.*)\.png$ {
rewrite ^ $basename.php last;
}
# your other locations
}
О, теперь я вижу проблему.
Ваше правило перезаписи выглядит так:
rewrite ^/i/(.*?)$ /i/$1.php last;
Так что это перепишет /i/cute.png
к /i/cute.png.php
. Вероятно, этого не существует.
Вы сказали, что просто хотели изменение .png
к .php
, попробуйте что-нибудь вроде этого:
rewrite ^/i/(.*?).png$ /i/$1.php last;