Masalah dengan pengalihan nginx dengan parameter
滿天的星座
滿天的星座 2017-05-16 17:15:56
0
1
887

Nah, saya baru menukar kata kunci kepada aaabbb.
Ini bermakna apabila saya melawat /aaabbb/anime, saya sebenarnya meminta /ab_anime.php

location /aaabbb/ {
        rewrite ^/aaabbb/(\w+)$ /ab_.php last;
        rewrite "/aaabbb/(\w+)/(\d{1,2})$" /aaabbb/?id=? permanent;
    }

Kemudian saya ingin membuatnya supaya apabila saya klik padanya untuk kali pertama, parameter akan dimasukkan Pada masa yang sama, saya tidak dapat melihatnya di bar alamat Kemudian, setiap kali saya menyegarkannya, di sana tidak akan menjadi parameter.

Jadi saya menyemak bahawa jika tiada parameter, terdapat tanda soal selepas itu, tetapi saya mendapati ia tidak berguna.
Adakah kerana saya membelanjakan $1?id=$2 sendiri?
Hanya parameter yang ditambahkan pada penghujung bar alamat akan hilang. Namun, ia tidak berguna.

Saya baru melihat ini lagi

    rewrite  ^/test.php  /new  permanent;       //重写向带参数的地址

    rewrite  ^/test.php  /new?  permanent;      //重定向后不带参数

    rewrite  ^/test.php   /new?id=$arg_id?  permanent;    //重定向后带指定的参数

Saya pun tak tahu nak buat apa... Patutkah saya menulis satu lagi dan menggunakan $arg? ? ?

滿天的星座
滿天的星座

membalas semua(1)
習慣沉默

Saya rasa penyoal telah merumitkan isu ini.
Sudah tentu, saya tidak pasti saya benar-benar memahami keperluan penyoal saya akan cuba huraikan seperti berikut:

  1. Permintaan pengguna/aaabbb/anime

  2. nginx menghuraikan /aaabbb.php?id=anime dengan betul dan mengembalikan kandungan A kepada pengguna

  3. Bar alamat pengguna membaca /aaabbb dan menikmati kandungan A

  4. Pengguna menyegarkan penyemak imbas, diarahkan ke /aaabbb dan menikmati kandungan B /aaabbb.php. (Atau teruskan membaca kandungan A)

Terdapat pepijat di sini Apabila permintaan adalah /aaabbb/anime, bar alamat akan menjadi /aaabbb/anime#xxxxxx paling banyak Yang sebelum # tidak akan berubah, dan yang selepas # akan menjadi cincang. Jika anda ingin menukar bar alamat kepada /aaabbb, anda mesti mempunyai tindakan ubah hala.

Pemikiran saya adalah seperti berikut: (Jika anda menerima jawapan, sila komen pada kandungan yang salah dalam penyelesaian saya)

  1. strategi tulis semula nginx ialah rewrite ^/aaabbb/(w+)$ /redirect.php?target= last;

  2. redirect.php menulis sasaran ke dalam sesi dan mengembalikan ubah hala ke /aaabbb (bar alamat boleh dan hanya boleh diubah suai melalui kaedah ini)

  3. /aaabbb/ Navigasi ke index.php, baca sasaran dalam sesi, padam (atau tidak padam) dan panggil fail php yang sepadan untuk mengembalikan kandungan.

  4. Apabila menyegarkan /aaabbb, navigasi ke index.php dan juga balas permintaan berdasarkan sesi.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan