Saya yakin ini telah ditanyakan sebelumnya, tetapi saya tidak dapat menemukan solusi yang berfungsi.
Sebuah situs web telah mengganti layanan CMS, tetapi memiliki domain yang sama, bagaimana cara mengatur penulisan ulang nginx untuk satu halaman?
Misalnya
Halaman Lama
http://sitedomain.co.uk/content/unique-page-name
Halaman baru
http://sitedomain.co.uk/new-name/unique-page-name
Harap dicatat , saya tidak ingin semua yang ada di halaman konten dialihkan, tetapi secara harfiah hanya url yang disebutkan di atas. Saya memiliki sekitar 9 arahan ulang untuk diatur, yang tidak cocok untuk suatu pola.
Terima kasih!
Sunting: Saya menemukan solusi ini, yang tampaknya berfungsi, kecuali kenyataan bahwa itu dialihkan tanpa garis miring:
if ( $request_filename ~ content/unique-page-name/ ) {
rewrite ^ http://sitedomain.co.uk/new-name/unique-page-name/? permanent;
}
Tetapi ini mengarahkan ke:
http://sitedomain.co.uknew-name/unique-page-name/
if
pernyataan di nginx itu buruk? Apakah ini masih lebih baik daripada menggunakan metode menulis ulang?if
bersama dengan arahan kembali baik-baik saja. Lihat wiki.nginx.org/IfIsEvil . Ya, IMO, lebih baik daripada menggunakan menulis ulang.Idealnya Anda tidak boleh menggunakan pernyataan if jika Anda bisa menghindarinya. Sesuatu seperti ini bisa bekerja (belum diuji).
sumber
Saya menggunakan solusi berikut:
Berhasil.
sumber
Bagi saya itu bekerja tanpa tanda sama dengan seperti ini:
sumber
rewrite
. Lihat jawaban @ SteveEdison.