网站语言 - htaccess RewriteRule

时间:2011-01-26 19:01:48

标签: .htaccess mod-rewrite url-rewriting

我正在尝试使用.htaccess的规则和条件,但不知道如何做我需要的。

这是场景:

我的网站有很多种语言。 (EN | ES | PT)

我想使用这样的网址:

 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

2 个答案:

答案 0 :(得分:1)

你可能会使用类似这样的东西

RewriteEngine on
RewriteBase /

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

答案 1 :(得分:0)

对于任何2位数字符语言

选项+ FollowSymlinks RewriteEngine on RewriteRule ^ [a-zA-Z] [a-zA-Z] /index.html $ index.html?language = $ 1 RewriteRule ^ index.html $ /index.php [L]