2016-12-01 2 views
2

i contact-us Seite genau in der urlich will genau berührungs uns Seite passen aber nicht funktioniert

die Kombination ..

contact.*  i,e(extension could be .html or .php or .aspx) 
contact-us.*  i,e(extension could be .html or .php or .aspx) 
contact.*  i,e(extension could be .html or .php or .aspx) 
contactUs.*  i,e(extension could be .html or .php or .aspx) 

ohne Erweiterung könnte passen wollen

contact  i,e(no extension) 
contact-us i,e(no extension) 
contact  i,e(no extension) 
contactUs  i,e(no extension) 

jetzt verwende ich diesen Code, der alles

Spiele

hier ist eine Demo: http://phpio.net/s/1i2p

i bin bereit Lösung anders mit total Code

mir bitte helfen Vielen Dank im Voraus zu akzeptieren !!

+2

Try ' '~/Kontakt (: - Wir |?) \ (?: aspx | php | html)/$ ~ i''?.?. Das letzte '/?' Entspricht einem optionalen '/' am Ende (nicht sicher, dass es da sein sollte). –

+0

Verwenden 'if (! Strpos ($ url 'Kontakt-us') == false)' –

+0

@ WiktorStribiżew, Ihre Antwort funktioniert perfekt vielen Dank – EaB

Antwort

1

können Sie verwenden

'~/contact(?-i:-us|Us)?(?:\.(?:aspx|php|html))?/?$~i' 

Siehe regex demo

Es passt:

  • /contact - eine Teil /contact
  • (?:-us|Us)? - eine optionale Teilzeichenfolge -us oder Us
  • (?:\.(?:aspx|php|html))? - eine optionale Sequenz eines . + irgendeine der Alternativen Strings()
  • /? - eine optionale /
  • $ - Ende der Schnur.

Beachten Sie, dass (?-i:...) ist eine Modifizierungsgruppe, wo die Alternativen in einem Fall unempfindlich Art und Weise angepasst werden (der allgemeine /i Modifikator am Ende nicht bei dieser Gruppe nicht beeinflusst).

+0

Ich versuchte, die Anforderung "pass genau" mit Änderungen innerhalb einer Modifikatorgruppe widerzuspiegeln. Wenn es nicht wirklich notwendig ist, können Sie '(? -i:' 'mit' (?: ') Ersetzen. Außerdem können Sie dies durch Spielen mit den'? '- Modifikatoren oder Hinzufügen/Entfernen von Alternativen in Gruppen tun. –

+0

i habe es noch einmal vielen Dank – EaB

Verwandte Themen