I'm really struggling with understanding how to approach this...
I'd like:
?option=1&lang=en becomes /en/2 ?lang=no&option=3 becomes /no/3 page1.php?lang=se&option=4 becomes /se/page1/4 page2.php?lang=fr&option=5 becomes /fr/page2/5
I know that .htaccess are found in terms of priority based on their depth in the file tree. But what about in the files themselves? Can I have multi-stage rewrites? Is that necessary? Or should I rewrite in such a way that the bottom of the tree rewrites to one thing, then the next folder up has an htaccess that modifies the already modified URL and then continues up the tree? Or is it simply a case of making a rewrite for every possible combination of URLs? (I hope not)...
As you can see, I'm pretty confused...
Any help appreciated :) Thanks K
This should work:
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /\?option=([0-9+])&lang=(.*)\ HTTP
RewriteRule ^ /%3/%2? [R=301,L]
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /\?lang=(.*)&option=([0-9+])\ HTTP
RewriteRule ^ /%2/%3? [R=301,L]
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /(.*)\.php\?lang=(.*)&option=([0-9+])\ HTTP
RewriteRule ^ /%3/%2/%4? [R=301,L]
It should change urls like:
?option=1&lang=en
to /en/2
?lang=no&option=3
to /no/3
page1.php?lang=se&option=4
to /se/page1/4
page2.php?lang=fr&option=5
to /fr/page2/5
If possible I would avoid using .htaccess files for performance reasons as described here:
http://httpd.apache.org/docs/current/howto/htaccess.html
Either way, it looks like you need mod_rewrite:
http://httpd.apache.org/docs/current/rewrite/
If you don't have access to the main httpd config file, then I think setting the mod_rewrite rules on the top-level .htaccess should be good enough.