重写规则无法返回参考
Rewrite Rule not working back reference
我有这个例子:
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}
和数组中可以有吗?例如 MyGame、OtherGame、Biliard 等?
提前致谢,抱歉我的英语不好
RewriteCond %{QUERY_STRING} game=MyGame
RewriteRule ^games/freeGames?$ /flash/games/%1? [L,R=301]
在此代码中,%1
反向引用始终为空,因为您尚未在前面的 RewriteCond
指令中定义捕获组(即带括号的子模式)。因此,结果 URL 是 always /flash/games/
(我认为你的 "homepage")。
您需要将string/regex括在括号中来定义捕获组,例如:
RewriteCond %{QUERY_STRING} game=(MyGame)
Another question : is possible to have in %{QUERY_STRING} and array ? For example MyGame, OtherGame, Biliard, etc ?
如果您需要匹配多个项目,那么您可以在捕获的组中使用交替。例如:
RewriteCond %{QUERY_STRING} game=(MyGame|OtherGame|Biliard|etc.)
现在它将匹配 "MyGame" 或 "OtherGame" 或 "Biliard" 等,并且任何匹配都保存在 %1
反向引用中。
我有这个例子:
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}
和数组中可以有吗?例如 MyGame、OtherGame、Biliard 等?
提前致谢,抱歉我的英语不好
RewriteCond %{QUERY_STRING} game=MyGame RewriteRule ^games/freeGames?$ /flash/games/%1? [L,R=301]
在此代码中,%1
反向引用始终为空,因为您尚未在前面的 RewriteCond
指令中定义捕获组(即带括号的子模式)。因此,结果 URL 是 always /flash/games/
(我认为你的 "homepage")。
您需要将string/regex括在括号中来定义捕获组,例如:
RewriteCond %{QUERY_STRING} game=(MyGame)
Another question : is possible to have in %{QUERY_STRING} and array ? For example MyGame, OtherGame, Biliard, etc ?
如果您需要匹配多个项目,那么您可以在捕获的组中使用交替。例如:
RewriteCond %{QUERY_STRING} game=(MyGame|OtherGame|Biliard|etc.)
现在它将匹配 "MyGame" 或 "OtherGame" 或 "Biliard" 等,并且任何匹配都保存在 %1
反向引用中。