suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Regulärer Ausdruck – regulärer Nginx-Ausdruck, wie man eine Übereinstimmung findet, die nicht mit / endet und nicht mit .xml, .html und .htm endet

Nachfrage

Erfordert einen regulären Ausdruck, der in Nginx verwendet wird.
Wenn $uri nicht mit / endet und nicht mit .xml, .html oder .htm endet, bleibt es dauerhaft bei $uri/.

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

Probieren Sie es aus

Meine eigene Schreibmethode, aber gescheitert:

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

Stellen Sie eine Frage

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

Ergänzung

Ich habe diesen Satz verwendet und es scheint, dass ich vorerst keine Probleme festgestellt habe.

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

Frage, steht in den eckigen Klammern nicht a-zA-Z0-9? Können Sie auch eine vollständige passende Zeichenfolge schreiben?

过去多啦不再A梦过去多啦不再A梦2741 Tage vor884

Antworte allen(2)Ich werde antworten

  • PHP中文网

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

    你需要的是 支持 并、交、差 的正则表达式引擎:http://nfabo.cn/p/?p=1280
    在nginx中,只能用否定反向环视: .*(?<!\.xml|\.html|\.htm|/)$

    Antwort
    0
  • 巴扎黑

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

    你可以先把这些.html,.htm,.xml结尾的文件rewrite到他们原来的目录,
    剩余的在应用你的重写规则就达到了你的这个目的。

    Antwort
    0
  • StornierenAntwort