GNU/Linux >> Belajar Linux >  >> Linux

Nginx - menulis ulang atau mengembalikan untuk pengalihan?

Solusi 1:

Opsi Anda 1:

return 301 $scheme://$host$request_uri;

Persis seperti yang Anda inginkan.

Tidak yakin mengapa rewrite ^ http://$host$request_uri? permanent; baris akan menghasilkan 302, bukan 301. Itu sintaks yang tepat untuk memaksanya mengembalikan 301.

Solusi 2:

Secara teknis, Anda dapat menggunakan kedua opsi tersebut. Mereka bisa bekerja.

Menurut dokumentasi NGINX, gunakan return jika Anda bisa . Ini lebih sederhana dan lebih cepat karena NGINX berhenti memproses permintaan (dan tidak harus memproses regex). Lebih dari itu, Anda dapat menentukan kode di 3xx seri:

return (301 | 302 | 303 | 307) url;

Jika Anda memiliki skenario di mana Anda perlu memvalidasi URL dengan regex atau perlu menangkap elemen di URL asli (yang jelas tidak ada dalam variabel NGINX yang sesuai), maka Anda harus menggunakan rewrite . Anda harus tahu bahwa rewrite hanya mengembalikan kode 301 atau 302.

rewrite regex URL [flag];

Anda dapat membaca selengkapnya tentang pengembalian dan penulisan ulang di situs web NGINX.


Linux
  1. Jalankan beberapa versi PHP untuk domain yang berbeda di NGNIX

  2. Izin untuk kunci SSL?

  3. cara terbaik untuk men-debug aturan penulisan ulang nginx di file konfigurasi?

  1. nginx - 413 Permintaan Entitas Terlalu Besar

  2. Perpipaan Untuk Output Loop Mencegah Modifikasi Variabel Lokal?

  3. Bagaimana cara mengatur pengalihan SSL untuk situs web di Plesk?

  1. Cara Mengonfigurasi Nginx Reverse Proxy untuk Kibana

  2. Mod Menulis Ulang untuk Joomla Permalinks

  3. Kembalikan kode sed jika tidak cocok