开发者

.htaccess rewrite pass all query strings through

开发者 https://www.devze.com 2023-03-07 05:53 出处:网络
Currently I use: RewriteRule ^([^/\\.]+)/?$ page.php?page=$1 [L] Which is good for when passing one querystring through.开发者_Go百科

Currently I use:

RewriteRule ^([^/\.]+)/?$ page.php?page=$1 [L]

Which is good for when passing one querystring through.开发者_Go百科

But is there a way just to pass all querystrings through? i.e. One page request might be:

domain.com/contact?course=23

and another may be:

domain.com/contact?workshop=41

So I need to know what the query string name is, but only ever one will be passed in at a time


If I understand your question correctly, you can just add the [QSA] (query string append) flag to the end of your RewriteRule

RewriteRule ^([^/\.]+)/?$ page.php?page=$1 [L,QSA]

This will process your request as you've already done, and add any further querystring params onto the end.


This is what I do.

RewriteRule ^((/?[^/]+)+/?)$ ?q=$1 [L]

Now the whole part after domain.com/ is in $_GET['q'] in index.php. E.g. if you request domain.com/articles/12, q contains articles/12. It's then trivial parse it with e.g. explode('/', $_GET['q']).

0

精彩评论

暂无评论...
验证码 换一张
取 消