我正在制作一个动态PHP页面。页面应该加载什么内容由通过.htaccess文件的GET请求决定。如果我写/page/groups/admin_users
,那么真正的请求将是index.php?page=groups/admin_users
。这是一个害处,问题是当我想做一个额外的GET请求。
我希望能够发送/page/groups/admin_users?id=1
,并真正请求index.php?page=/groups/admin_users&id=1
。当我尝试这个$_GET['page'];
有一个值,但$_GET['id'];
是空白。
这是我的htaccess文件
RewriteEngine on
# Tidy up adresses
RewriteRule ^page/?$ /index.php [NC,L]
RewriteRule ^page(['w-/]+)/?$ /index.php?page=$1 [NC,L]
我试着只包括字母、数字和"/",但它仍然不通过。
如果这很难或不可能,我当然可以使它成为作用域的一部分。像/page/groups/admin_users/id/1
一样,用PHP脚本"解码"它。如果只发送两个参数就方便多了
QSA
标志将当前URL查询字符串与规则中定义的字符串组合在一起:
RewriteRule ^page(['w-/]+)/?$ /index.php?page=$1 [QSA,NC,L]