18

Currently I use:

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

Which is good for when passing one querystring through.

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

2 Answers 2

47

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.

Sign up to request clarification or add additional context in comments.

Comments

1

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']).

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.