2016-08-08 16 views
-1

Ich versuche, diese RedirectMatch zu verwenden:Was ist falsch an diesem RedirectMatch-Ausdruck?

RedirectMatch 301 /(.*.p0) /(.*.p1) 

eine Seite Parameter in der URL zu ersetzen. alter url: http://www.example.com/some-list-c1-p0 neuer url: http://www.example.com/some-list-c1-p1

was falsch ist?

Oder kann ich eine Regel erstellen, die 301 die folgende Art von URLs umleitet?

alte url: http://www.example.com/some-list-c1-p0.html neuer url: http://www.example.com/some-list-c1-p1

Ich verwende:

RedirectMatch 301 /(.*.p0)\.html /$1 

Aber ich kann nicht bekommen, dass 'p1' anstelle von 'p0'

Antwort

1

Ihr Ersatz Seite enthält keine Verweise auf die Übereinstimmungen. The Apache docs Beispiele nennen, wie folgt aus:

RedirectMatch "(.*)\.gif$" "http://other.example.com$1.jpg" 

mit $1, $2 usw. zu den erfassten Spiele zu finden, so versuchen

RedirectMatch 301 /(.*.)p0 /$1p1 

und sehen, ob das besser funktioniert.

+0

Es ist auf der URL gearbeitet, aber die Parameter am Ende hinzugefügt. So, http://www.example.com/some-list-c1-p1?id=1&page=0 – nickRO87

+0

Also, wie kann ich das vom Ende der URL entfernen (? Id = 1 & page = 0)? – nickRO87

+0

@ nickRO87: es _might_ (ungetested) funktioniert, indem die Ersetzungs-URL in '?' Endet, andernfalls müssen Sie wahrscheinlich [mod_rewrite] (https://httpd.apache.org/docs/current/mod/mod_rewrite) verwenden. html), das ein 'QSA' Flag hat, um zu steuern, ob Abfrageparameter entfernt werden oder nicht. –

0

bekam ich eine Abhilfe mit dem zweiten Teil meiner Frage

Dies funktioniert:

RedirectMatch 301 /(.*.)p0\.html /$1p1