Apache .htaccess将获取数据重写为获取数据

Apache .htaccess将获取数据重写为获取数据,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我想重写http://192.168.2.101/game.php?village=567919&screen=overview进入http://192.168.2.101/index.php?dir=game&page=overview&village=567919有人能告诉我为什么这样做效果不好,以及我是如何做对的吗 我的.htaccess代码 RewriteEngine On RewriteRule ^$ index/ RewriteRule ^(.*)/$ index.php?dir=m

我想重写
http://192.168.2.101/game.php?village=567919&screen=overview
进入
http://192.168.2.101/index.php?dir=game&page=overview&village=567919
有人能告诉我为什么这样做效果不好,以及我是如何做对的吗

我的.htaccess代码

RewriteEngine On
RewriteRule ^$ index/
RewriteRule ^(.*)/$ index.php?dir=main&page=$1 [L,QSA]
RewriteRule ^game.php?village=(.*)&screen=(.*)$ index.php?dir=game&page=$2&village=$1 [L,QSA]

您必须使用
%{QUERY\u STRING}
来解析查询字符串参数

用htaccess中的此代码替换您的代码

RewriteEngine on

RewriteCond %{QUERY_STRING} ^village=([^&]+)&screen=([^&]+)$
RewriteRule ^game\.php$ /index.php?dir=game&page=%2&village=%1 [L]

RewriteRule ^(.+)/$ /index.php?dir=main&page=$1 [L]
RewriteRule ^$ /index.php [L]

尝试将
village=(.*)
更改为
village=(.*)
@hjpotter92无更改。。。