2016-07-24 11 views
2

Ich muss eine Bedingung für die Umleitung einer Website auf andere URL erstellen und ich denke, es ist ziemlich komplizierter Zustand.Wie man eine Regel in .htaccess anwenden

#RewriteRule (pl)?(/page/5/?)$ /polityka-prywatnosci/ [R=301,L] 

Das ist meine Basis für diese Umleitung ist, aber ich muss einige Worte ausschließen vorhergehenden /page/5/ zum Beispiel Wort ‚Auto‘ nicht diese Umleitung auszuführen, wenn dieses Wort erscheint. Um alles klar zu machen: wenn ich habe: http://some-url/page/5 Ich möchte dies umleiten zu http://some-url/polityka-prywatnosci/ aber wenn es http://some-url/car/page/5 ist, möchte ich in dieser URL bleiben. Ich versuchte einen Trick wie: #RewriteRule (pl)?[^(car)](/page/5/?)$ /polityka-prywatnosci/ [R=301,L], aber es funktioniert nicht. Was sind die Möglichkeiten, um es zu überwinden?

+0

leider –

Antwort

1

Wenn negatives Lookbehind erlaubt ist, können Sie mit versuchen:

RewriteRule (?<!car|car/pl)(/pl)?(/page/5/?)$ /polityka-prywatnosci/ [R=301,L] 

regex demo See.

könnte eine andere Art und Weise in den Zustand 3 aufeinander folgenden Ersatz sein:

RewriteRule (/page/5/?)$ /polityka-prywatnosci/ [R=301,L] 
RewriteRule (car|car/pl)/polityka-prywatnosci/$ $1/page/5/ [R=301,L] 
RewriteRule /pl(/polityka-prywatnosci/)$ $1 [R=301,L] 
+0

Dank für das nicht funktioniert, aber ich bin afriad es nicht in .htaccess/ –

+0

@ MarekCzyż Nun da sehe ich andere Fragen über die erlaubte Das gleiche Thema und Lookbehind scheint erlaubt zu sein. Wie auch immer, ich habe die Antwort aktualisiert: Denkst du, dass es funktionieren kann? – horcrux

+0

Ich denke, dass nein, weil htaccess Suche nach ersten passenden Ersatz und dann lassen Sie es @horcrux –