Nginx belgelerine baktım ve hala beni tamamen şaşırtıyor.
Nasıl try_files
çalışır? İşte belgeler ne diyor:
try_files
sözdizimi: try_files path1 [path2] uri
varsayılan: yok
bağlam: sunucu, konum
kullanılabilirlik: 0.7.27
Dosyaların varlığını sırayla denetler ve bulunan ilk dosyayı döndürür. Sondaki eğik çizgi bir dizini gösterir - $ uri /. Hiçbir dosya bulunamaması durumunda, son parametreye dahili bir yönlendirme çağrılır. Son parametre geri dönüş URI'sidir ve var olması gerekir , aksi takdirde dahili bir hata ortaya çıkar. Yeniden yazma işleminden farklı olarak, geri dönüş adlandırılmış bir konum değilse, $ args otomatik olarak korunmaz. Eğer korumaya ihtiyacınız varsa, bunu açıkça yapmanız gerekir:
Yolları nasıl kontrol ettiğini anlamıyorum ve dahili bir hata istemiyorsam ancak başka bir dosyayı bulmak için yolun kalanını devam ettirirse ne olur?
Önbelleğe alınmış bir dosyayı denemek istersem /path/app/cache/url/index.html
ve denemezse /path/app/index.php
nasıl yazarım? Yazdıysam:
try_files /path/app/cache/ $uri
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php-fastcgi/php-fastcgi.socket;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
Benim var index index.php index.html index.htm;
. Ben ziyaret ettiğinizde /urlname
, bu kontrol çalışacağız /path/app/cache/urlname/index.php
sonra /path/app/cache/urlname/index.html
? Her şeyi görmezden gelirsek , önbellek klasörünü kontrol etmek try_files
mümkün müdür try_files
? Denedim ve başarısız oldum.