Saya mencoba untuk mengubah penulisan ulang yang sangat sederhana dari versi nginx sebelumnya ke versi sekarang yang terlihat seperti di bawah ini:
location / {
if ( !-f $request_filename ) {
rewrite ^/([a-z]*)$ /index.php?action=$1;
rewrite ^/([a-z]*)/(.*)$ /index.php?action=$1&item=$2;
}
}
Sejauh ini saya sudah sampai. Halaman indeks muncul, tetapi halaman apa pun yang harus ditulis ulang seperti di atas, sebagai gantinya melemparkan 404:
server {
listen 80 default;
root /var/www;
index index.php;
server_name _;
location / {
try_files $uri $uri/ /index.php?action=$uri&item=$args;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}
Apa yang saya lakukan salah di sini?
Apa yang sebenarnya terjadi? Bagian dari masalahnya adalah $ uri dan $ args tidak dikodekan dengan benar.
—
Luke
404 dilemparkan
—
Industri
File not found. jika saya menggunakan URI /pageatau/page/id
Apa yang terjadi ketika Anda berbuat adil
—
Luke
try_files $uri $uri/ /index.php?
Index.php bekerja dengan baik, tetapi apa pun yang harus ditulis ulang berakhir pada 404-an
—
Industri
Coba
—
Luke
try_files $uri $uri/ /index.php?$args. Anda harus bisa mendapatkan URL dengan $_SERVER['REQUEST_URI']. $ _GET seharusnya bekerja secara normal.