Alain Roger wrote:
Hi,

i would like to redirect all requests as following:

http://www.mywebsite.com/en/logon/index.php =>
http://www.mywebsite.com/logon/index.php?lang=en
http://www.mywebsite.com/fr/logon/logon.php =>
http://www.mywebsite.com/logon/logon.php?lang=fr
http://www.mywebsite.com/en/logon/hello.php =>
http://www.mywebsite.com/logon/hello.php?lang=en
http://www.mywebsite.com/en/welcome/index.php =>
http://www.mywebsite.com/welcome/index.php?lang=en

so i tried to do the following rule but without success.
RewriteRule ^(sk|en|fr)/(*)/(*)$    $2/$3?lang=$1 [L]

so how can i write a rule that will proceed:
- whatever the folder is: logon, welcome, ....
- whatever file it is: index.php (or nothing), hello.php,....

In your regular expression above, the parts "(*)" probably do not mean what you think they do. As written, they mean "the character '(', 0 or more times". You probably want "(.*)" instead, which means "any character, 0 or more times". The first part of the RewriteRule is a "regular expression", which is different from a "file wildcard".

Try this :
RewriteRule ^/(sk|en|fr)/(welcome|logon)/(hello|index)\.php$ /$2/$3.php?lang=$1 [L]

You could do this :
RewriteRule ^/(sk|en|fr)/([^/]+)/(.*)$    /$2/$3?lang=$1 [L]
but that matches more than just your examples above, so it could generate URLs that you do not want, for example it would also do

http://www.mywebsite.com/en/anything/something.php
==>
http://www.mywebsite.com/anything/something.php?lang=en

It is generally better to "limit" your rule to what you think the incoming URLs might reasonably be, rather than make a very general rewrite rule that will rewrite even nonsense URLs. This could also be dangerous, leading to executing things you do not really want to make available.

Last thing : for the last element of the URL, which you say can be "nothing" or index.php or hello.php, the "nothing" case is a bit of a problem. Can you give an example of what you would want to generate in case the incoming URL is, e.g.
http://www.mywebsite.com/en/anything
==>
http://www.mywebsite.com/anything?lang=en
does not seem to make sense.






---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: [EMAIL PROTECTED]
  "   from the digest: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to