2012-11-28 231 views
1

我想在我的网站上有两种语言。荷兰语和英语。我的根目录中的“en”和“nl”文件夹中已经有英文和荷兰文网站。多语言网站

怎样还是怎样将重定向他们的最好方法是什么? .htaccess或PHP。你能告诉我如何?

+2

“重定向它们”...?根据什么重定向什么地方? – deceze

+0

请,请不要做这样的事情,饼干{LANG = EN | NL}和PHP:LANG =的getCookie( “郎”),pathToPage = '/application/'.lang.'/path/to/page'。因为容易出现目录遍历,这很糟糕:( – fatfredyy

回答

3

htaccess似乎对我来说容易得多。用PHP你将不得不做一个auto_prepend文件,我猜。要记住的另一件事是使用完全相同的页面,所以选择一种语言,并使用它的网址....即en/about_us.html和nl/about_us.html原因是因为,然后谷歌可以弄清楚哪些页面是相同的,但是不同的语言。就重写而言,如果你有文件夹,那么我看不到你需要重写的东西。请给我更多的信息。每当我创建一个多语言站点时,我的控制器都是相同的(当然是在mvc环境中),而我只有两种不同的视图。在这种情况下,它会被重写,像这样

RewriteRule en/(.*).html /$1.php?language=en 
RewriteRule nl/(.*).html /$1.php?language=nl 

RewriteCond %{HTTP_ACCEPT_LANGUAGE} ^(en) 
RewriteRule ^[^en/](.*) /en/$1 [R=301] 
RewriteCond %{HTTP_ACCEPT_LANGUAGE} ^(nl) 
RewriteRule ^[^nl/](.*) /nl/$1 [R=301] 
+0

页面名称确实是相同的,我故意这样做,我只希望我的客户能够自动发送正确的语言,我使用的是cloudflare。 。事情 –

+3

啊,那么你会想要做这样的事情:http://www.thefutureoftheweb.com/blog/use-accept-language-header它着眼于$ _ SERVER [“HTTP_ACCEPT_LANGUAGE”]找出语言。在这种情况下,它会是PHP做在的auto_prepend的工作。 –

+0

我喜欢htacces。你有一个网站,解释了? –