2017-07-25 2 views
1

Ich habe dieses Beispiel:Rewrite-Regel funktioniert nicht zurück Referenz

RewriteCond %{QUERY_STRING} game=MyGame 
RewriteRule ^games/freeGames?$ /flash/games/%1? [L,R=301] 

ich auf die Homepage weitergeleitet werde. Aber wenn ich:

RewriteCond %{QUERY_STRING} game=MyGame 
RewriteRule ^games/freeGames?$ /flash/games/MyGame? [L,R=301] 

Redirect funktioniert gut. Kannst du mir bitte helfen ?

Eine andere Frage: ist in %{QUERY_STRING} und Array möglich? Zum Beispiel MyGame, OtherGame, Biliard, etc?

Thx im Voraus und sorry für mein Englisch

+0

Probieren Sie $ 1 statt% 1 – Bernhard

+0

@Bernhard Das gleiche ....... – user7424312

Antwort

1
RewriteCond %{QUERY_STRING} game=MyGame 
RewriteRule ^games/freeGames?$ /flash/games/%1? [L,R=301] 

In diesem Code der %1 Rückreferenzierung ist immer leer, da Sie keine erfassten Gruppe definiert haben (dh. Parenthesised Unter-Pattern) in der vorhergehende RewriteCond Richtlinie. Also, die resultierende URL ist immer/flash/games/ (Ihre "Homepage" vermute ich).

Sie müssen durch rund um die Zeichenfolge/regex in Klammern), zum Beispiel der erfassten Gruppe definieren:

RewriteCond %{QUERY_STRING} game=(MyGame) 

Noch eine Frage: ist möglich in% haben {QUERY_STRING} und Array? Zum Beispiel MyGame, OtherGame, Biliard, etc?

Wenn Sie mehrere Artikel passen müssen, dann können Sie Wechsel in der erfassten Gruppe verwenden. Zum Beispiel:

RewriteCond %{QUERY_STRING} game=(MyGame|OtherGame|Biliard|etc.) 

Jetzt wird es „MyGame“ oder „OtherGame“ oder „Billard“ usw. entspricht, und was auch immer übereinstimmt, wird in der %1 Rückreferenzierung gespeichert.

+1

Magic @MrWhite .... Danke. – user7424312

Verwandte Themen