2011-01-26 70 views
2

我试图使用.htaccess的规则和条件,但不知道如何做我需要的。网站语言 - htaccess重写规则

这里是场景:

我有一个网站有很多语言。 (EN | ES | PT)

我想用这样的URL:

www.site.com/home/ 
(original url): www.site.com/index.php?p=home 
(opens home.php - session language) 

而像这样:

www.site.com/en/home/ 
(original url): www.site.com/index.php?l=en&p=home 
(opens home.php - en language) 

什么是我需要创建到eules /条件检测网址中的语言?

TIA


SOLUTION:

RewriteRule ^(en|es|pt)?\/?([a-z0-9A-Z,_-]+)\/?$ index.php?l=$1&p=$2 [QSA,L] 

感谢

注: “目前的解决方案确实也让像/ enfoobar被改写到的index.php? l = en & p = foobar因为/独立于语言指示符“ - Gumbo

+0

mod_rewrite可能不完全是这个答案。看看http://httpd.apache.org/docs/2.2/content-negotiation.html - 这可能比试图使用mod_rewrite更有帮助。 – Andrew 2011-01-26 21:31:00

+0

谢谢,我会检查它。 – paulogoncalvs 2011-01-27 11:05:24

回答

1

你也许可能使用类似这样

RewriteEngine on 
RewriteBase/

RewriteRule ^(en|es|pt)/(.*) /index.php?l=$1&p=$2 [QSA,L] 
0

对于任何2digits字符的语言

选项+的FollowSymLinks RewriteEngine叙述上 重写规则^ [A-ZA-Z] [A-ZA-Z] /index.html$ index.html?language = $ 1 RewriteRule^index.html $ /index.php [L]