重写规则不工作回到参考

重写规则不工作回到参考

问题描述:

我有这样的例子:重写规则不工作回到参考

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

我重定向到了主页。但如果我使用:

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

重定向工作正常。你能帮我吗 ?

另一个问题:是否有可能在%{QUERY_STRING}和array?例如MyGame,OtherGame,Biliard等?

THX提前对不起我的英语

+0

尝试用$ 1代替%1 – Bernhard

+0

@Bernhard同样的...... – user7424312

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

在这段代码中,%1反向引用总是空的,因为你没有在规定的捕获组(即parenthesised子模式)前面的RewriteCond指令。所以,由此产生的URL是总是/flash/games/(我认为你的“主页”)。

需要通过围绕在括号中的字符串/正则表达式来定义所捕获的组),例如:

RewriteCond %{QUERY_STRING} game=(MyGame) 

另一个问题是:有可能具有在%{QUERY_STRING}和数组?例如MyGame,OtherGame,Biliard等?

如果您需要匹配多个项目,则可以在捕获的组中使用替换。例如:

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

现在它将匹配“MyGame”或“OtherGame”或“Biliard”等,不管匹配保存在%1反向引用。

+1

魔法@MrWhite ....谢谢。 – user7424312