目前我使用:
RewriteRule ^([^/\.]+)/?$ page.php?page=$1 [L]
当通过一个查询字符串时,哪个是好的。
但有没有办法让所有的查询串通过?即一页请求可能是:
domain.com/contact?course=23
,另一个可能是:
domain.com/contact?workshop=41
所以我需要知道查询字符串名称是什么,但一次只能传入一个
答案 0 :(得分:37)
如果我正确理解您的问题,您只需将[QSA]
(query string append) flag添加到RewriteRule
RewriteRule ^([^/\.]+)/?$ page.php?page=$1 [L,QSA]
这将处理您已经完成的请求,并在末尾添加任何进一步的查询字符串参数。
答案 1 :(得分:1)
这就是我的工作。
RewriteRule ^((/?[^/]+)+/?)$ ?q=$1 [L]
现在,domain.com/之后的整个部分位于$_GET['q']
中的index.php
。例如。如果您请求domain.com/articles/12
,则q
包含articles/12
。然后用例如琐碎的解析它explode('/', $_GET['q'])
。