cari

Rumah  >  Soal Jawab  >  teks badan

Ungkapan biasa - ungkapan biasa nginx, cara memadankan tidak berakhir dengan / dan tidak berakhir dengan .xml .html .htm

Permintaan

Memerlukan ungkapan biasa, digunakan dalam nginx.
Jika $uri tidak berakhir dengan / dan tidak berakhir dengan .xml, .html atau .htm, ia akan kekal kepada $uri/.

location @rewrite {
    rewrite [^\/]$ $uri/ permanent;
    rewrite . /index.php?s=$uri&$args last;
}

Cubalah

Kaedah penulisan saya sendiri, tetapi gagal:

rewrite ([\/]|.xml|.html?)$ $uri/ permanent;

Tanya soalan

1)如何才可以实现不以.xml .html /结尾的才重写的正则。
2)如何才可以在正则表达式[]中排除完整的一段单词?

Supplement

Saya menggunakan ayat ini dan nampaknya saya tidak menemui sebarang masalah buat masa ini.

rewrite [^\/|\.xml|\.html?]$ $uri/ permanent;

Soalan, bukankah a-zA-Z0-9 dalam kurungan segi empat sama [] Bolehkah anda juga menulis rentetan padanan yang lengkap?

过去多啦不再A梦过去多啦不再A梦2748 hari yang lalu893

membalas semua(2)saya akan balas

  • PHP中文网

    PHP中文网2017-05-16 17:27:48

    Apa yang anda perlukan ialah enjin ekspresi biasa yang menyokong kesatuan, persimpangan dan perbezaan: http://nfabo.cn/p/?p=1280
    Dalam nginx, anda hanya boleh menggunakan penolakan untuk melihat sekeliling: .*(?<!.xml|.html|.htm|/)$

    balas
    0
  • 巴扎黑

    巴扎黑2017-05-16 17:27:48

    Anda boleh menulis semula fail ini yang berakhir dengan .html, .htm dan .xml ke direktori asalnya dahulu,
    Selebihnya dicapai dengan menggunakan peraturan penulisan semula anda.

    balas
    0
  • Batalbalas