I'm a newbie to mod rewrite, so pardon me please.
I'm learning mod rewrite by trial and error (plus searching), and it's fun, even though sometimes it's so stressful.
So anyway, here is my rewrite rule
- Code: Select all
RewriteCond %{HTTP_HOST} ^domain\.com
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=permanent,L]
RewriteCond %{HTTP_HOST} ^www.domain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.domain.com:80$
RewriteRule ^$ index.php?q=domain.com/ [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} ^www.domain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.domain.com:80$
RewriteRule ^domain\.com/(.*)$ index.php?q=domain.com/$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} ^www.domain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.domain.com:80$
RewriteRule ^(.*)$ index.php?q=domain.com/$1 [L,QSA]
It works as what I want it to be.
The first two lines will solved the permanent redirection of 'domain.com' to 'www.domain.com'. The rest of the code do the logic.
So basically the index.php will receive a parameter 'q' to get the right host.
The first rewrite rule after the permanent redirection is sending the domain.com to index.php?q=domain.com. The second rewrite rule is sending all the domain.com/domain.com/* request to index.php?q=domain.com/*. The third rewrite rule is sending all the domain.com/* request to index.php?q=domain.com/*.
The second rule is needed to prevent the third rule addind a duplicate domain.com in parameter 'q'.
NOW, my question is, is there anyway to shorten this out? I still think that there has to be a better way to make this shorter and simple.
Another thing, I added a nother querystring called 'lang'. Is it possible to add another rewrite rule to this rule?
For example, domain.com/lang-en will be directed to index.php?q=domain.com&lang=en
The path has to be start 'lang-' and followed by 2 letters. I'm confuse on how to match this new rule with the one that I have right now.
Any helps will be really appreciated.
Thanks
Regards,
Wendy Novianto[/code]