.htaccess RewriteRule用于隐藏和可见的GET

时间:2012-02-25 13:54:33

标签: .htaccess mod-rewrite url-rewriting

这是我已经完成的事情。

RewriteRule ^([a-z]+)$ index.php?file=$1

因此,访问domain.com/browse时,实际上会显示domain.com/index.php?file=browse

但问题是,这不会传递像这样的可见GET变量:domain.com/browse?page=2。如何让它传递两个GET变量:domain.com/index.php?file=browse&page=2

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:10)

您可以使用:

RewriteRule ^browse/?$ index.php?file=browse&page=1 [L,NC,QSA]
RewriteRule ^browse/([0-9]+)/?$ index.php?file=browse&page=$1 [L,NC,QSA]

#else it's for files
RewriteRule ^([a-z]+)/?$ index.php?file=$1 [L,NC,QSA]

或使用:

RewriteRule ^([a-z]+)$ php.php?file=$1 [L,NC,QSA]

QSA(查询字符串追加)标志将允许传递_GET变量

答案 1 :(得分:7)

您必须在重写中明确添加查询字符串:

RewriteRule ^([a-z]+)$ index.php?file=$1&%{QUERY_STRING}