假设我通过get方法传递4个变量,比如game_name
、game_id
、game_category
、game_player
。
默认链接看起来是这样的:www.games.com/gameinfo?game_name=zxcvb&game_id=12345&game_category=foo&game_player=bar
现在,我想重写URL如下:www.abc.com/gameinfo/foo/zxcvb/bar
我不想在链接中显示游戏的id,但仍然希望使用GET
方法进行传递。
如何做到这一点?
通过httpd.conf
启用mod_rewrite和.htaccess,然后将此代码放在.htaccess
的DOCUMENT_ROOT
目录下:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
# From: /gameinfo/12345/foo/zxcvb/bar
# To: /gameinfo?game_name=zxcvb&game_id=12345&game_category=foo&game_player=bar
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(gameinfo)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ /$1?game_name=$2&game_id=$3&game_category=$4&game_player=$5 [L,QSA,NC]