Konfigurasi Nginx yang telah saya lempar 404 untuk .php
seperti:
## Any other attempt to access PHP files returns a 404.
location ~* ^.+\.php$ {
return 404;
}
Namun saya memiliki beberapa file index.php dalam subfolder yang ingin saya jalankan. Konfigurasi saat ini seperti:
location = /sitename/subpage/index.php {
fastcgi_pass phpcgi; #where phpcgi is defined to serve the php files
}
location = /sitename/subpage2/index.php {
fastcgi_pass phpcgi;
}
location = /sitename/subpage3/index.php {
fastcgi_pass phpcgi;
}
ini berfungsi dengan baik, tetapi masalahnya adalah duplikat lokasi dan jika ada banyak subhalaman maka konfigurasi menjadi besar.
Saya mencoba wildcard seperti * dan beberapa regex, yang mengatakan tes nginx lulus tetapi tidak memuat halaman yaitu 404. Apa yang saya coba adalah:
location = /sitename/*/index.php {
fastcgi_pass phpcgi;
}
location ~* ^/sitename/[a-z]/index.php$ {
fastcgi_pass phpcgi;
}
Apakah ada cara saya dapat memiliki beberapa pathname di lokasi sebagai regex atau wildcard?
+
memperbaikinya.Urutan penting, dari deskripsi "lokasi" nginx :
Itu berarti:
=
. ("awalan pencocokan terlama" cocok)Anda perlu menyesuaikan urutan bagian regex.
sumber