Mengkonfigurasi Nginx untuk penulisan semula URL dan pengalihan semula melibatkan mengubahsuai fail konfigurasi nginx, biasanya terletak di /etc/nginx/
. Untuk menubuhkan penulisan semula URL dan pengalihan semula, anda perlu menggunakan Arahan rewrite
dan Arahan return
. Inilah panduan langkah demi langkah mengenai cara melakukannya:
/etc/nginx/nginx.conf
atau dalam fail konfigurasi tapak tertentu dalam direktori sites-available
. Gunakan Arahan rewrite
untuk menulis semula: Arahan rewrite
digunakan untuk menulis semula URL. Sintaks asas adalah rewrite regex replacement [flag]
. Sebagai contoh, untuk menulis semula semua permintaan dari /old-url
ke /new-url
, anda akan menggunakan:
<code class="nginx">rewrite ^/old-url/?$ /new-url permanent;</code>
Bendera permanent
mengembalikan kod status 301 yang menunjukkan pengalihan kekal.
Gunakan Arahan return
untuk Pengalihan: Arahan return
boleh digunakan untuk mengembalikan kod status HTTP dan secara pilihan URL. Sebagai contoh, untuk mengalihkan semua permintaan dari /old-url
ke https://example.com/new-url
, anda boleh menggunakan:
<code class="nginx">location /old-url { return 301 https://example.com/new-url; }</code>
Uji Konfigurasi: Selepas mengubah suai konfigurasi, penting untuk menguji konfigurasi untuk kesilapan sebelum memuatkan semula atau memulakan semula nginx:
<code class="sh">sudo nginx -t</code>
Muat semula nginx: Jika ujian berjaya, tambah semula nginx untuk menerapkan perubahan:
<code class="sh">sudo systemctl reload nginx</code>
Menyediakan pengalihan URL dalam nginx dengan berkesan dan cekap memerlukan beberapa amalan terbaik:
permanent
( 301
kod status) untuk pengalihan kekal yang anda pasti tidak akan berubah. Gunakan bendera redirect
(kod status 302
) untuk pengalihan sementara.curl
atau dam redirect dalam talian untuk memastikan ia berfungsi seperti yang dimaksudkan.Ujian URL Nginx Peraturan menulis semula adalah penting untuk memastikan ia berfungsi seperti yang diharapkan. Berikut adalah beberapa kaedah untuk menguji peraturan URL URL anda:
Menggunakan curl
: Alat baris perintah curl
boleh digunakan untuk menguji pengalihan. Sebagai contoh, untuk menguji pengalihan dari /old-url
ke /new-url
, anda boleh menggunakan:
<code class="sh">curl -I http://example.com/old-url</code>
Cari tajuk Location
dalam respons untuk melihat sama ada ia mengalihkan dengan betul ke /new-url
.
Redirect Checker
atau Httpstatus.io
boleh digunakan untuk menguji pengalihan dan penulisan semula URL dari sumber luaran.Log Pembalakan dan Akses: Anda boleh mengaktifkan pembalakan terperinci di Nginx untuk melihat permintaan sebenar dan tajuk tindak balas. Tambahkan yang berikut ke blok pelayan anda untuk membolehkan pembalakan lebih terperinci:
<code class="nginx">access_log /var/log/nginx/access.log combined;</code>
Kemudian, periksa balak untuk mengesahkan tingkah laku penulisan semula dan pengalihan semula.
Apabila mengkonfigurasi penulisan semula URL di Nginx, penting untuk mengelakkan kesilapan biasa untuk memastikan keberkesanan dan kebolehpercayaan konfigurasi anda:
Mengabaikan parameter pertanyaan: Gagal mengendalikan parameter pertanyaan dengan betul boleh mengakibatkan data yang hilang atau pengalihan yang salah. Sebagai contoh, jika anda menulis semula /old-url?param=value
, pastikan peraturan penulisan semula untuk rentetan pertanyaan:
<code class="nginx">rewrite ^/old-url/?$ /new-url? permanent;</code>
permanent
atau redirect
boleh menyebabkan kod status HTTP yang salah. Sentiasa menyemak semula bendera yang anda gunakan berdasarkan sama ada pengalihan adalah sementara atau kekal.(?i)
pada permulaan regex anda.Dengan menyedari perangkap -perangkap biasa ini dan mengikuti amalan terbaik, anda boleh menguruskan penulisan semula dan pengalihan semula URL dengan lebih berkesan di Nginx.
Atas ialah kandungan terperinci Bagaimanakah saya mengkonfigurasi Nginx untuk menulis semula dan pengalihan semula URL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!