Ungkapan biasa - ungkapan biasa nginx, cara memadankan tidak berakhir dengan / dan tidak berakhir dengan .xml .html .htm
过去多啦不再A梦
过去多啦不再A梦 2017-05-16 17:25:48
0
2
901

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梦

membalas semua(2)
洪涛

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|/)$

巴扎黑

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.

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