2016-06-09 16 views
1

Ich versuche, eine URL wie folgt umgeleitet werden:301 Redirect GET-Parameter

http://originalwebsite.com/event/detail.html?id=13

zu

http://newwebsite.com/events

Ich habe in meiner .htaccess Datei die folgende versucht:

redirect 301 /event/detail.html?id=13 /events 

aber es ist nicht w orking ...

Ich habe auch versucht, dies:

RewriteCond %{QUERY_STRING} /event/detail.html?id=13 
RewriteRule (.*) /events [R=301,L] 

jemand auf mich beraten kann, was ich falsch mache? Es ist ein hübscher Moor Standard Redirect ...

der GET Parameter ist nicht erforderlich, um durchgereicht werden, möchte ich nur alte Seite auf neue Seite zeigen.

Vielen Dank

Nach einigen weiteren Untersuchung habe ich entdeckt, dass Sie keine Variablen in der Redirect passieren kann, also habe ich den Code an die unten alterthed:

RewriteCond %{QUERY_STRING} id=13$ 
RewriteRule (.*) /events? [L,R=301] 

Dies wird jedoch das Problem Arbeits Ich habe ist, dass diese Umleitung für jede URL mit id=13 an sie angehängt wird. Ich muss konkreter sein, da ich/event /detail.html?id=13 nach/events umleiten möchte

Antwort

1

(. *) ist ein Catch-All-Muster, also wenn Sie die Regel beantragt werden nur eine bestimmte uri, können Sie gegen diese uri in RewriteRule

RewriteCond %{QUERY_STRING} id=13$ 
RewriteRule ^event/detail\.html$ /events? [L,R=301] 
+1

Danke dafür, dass es perfekt funktioniert. Um meinen obigen Code zu verdeutlichen, funktionierte es, aber weil ich '(. *)' Verwendet hatte, wäre es mit der Umleitung zu allen URLs übereinstimmt, ist das korrekt? – Javacadabra