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?
File not found.
jika saya menggunakan URI/page
atau/page/id
try_files $uri $uri/ /index.php
?try_files $uri $uri/ /index.php?$args
. Anda harus bisa mendapatkan URL dengan$_SERVER['REQUEST_URI']
. $ _GET seharusnya bekerja secara normal.Jawaban:
Ini seharusnya bekerja:
sumber
/page1/item
akan mengembalikan index.phptry_files $uri $uri/
bekerja dengan file statis?