如何在多语言网站上重写网址,使用不同的域名?

时间:2011-02-16 08:02:59

标签: apache mod-rewrite url-rewriting

我已经建立了一个国际网站,提供如下语言:

  

www.sitename.com/es/spanishpage.html
  www.sitename.com/de/germanpage.html
  www.sitename.com/fr/frenchpage.html
  ...

所有lang文件夹都是虚拟的,因此我可以使用相同数量的PHP页面制作数百个版本。为此,我使用重写规则来创建页面,类似于:

RewriteRule ^germanpage\.html$ /page.php?lang=de [L]

现在我想使用真实的域名。我该怎么办? 我想我必须为域创建物理文件夹(de /,/ fr / ...),但后来我如何重写页面?

我的意思是,sitename.de/转到myserver.com/de/。它工作,但它是一个空文件夹。如何将所有网站重定向到位于myserver.com/page.php?lang=de的网页?

非常感谢你的帮助!我真的迷路了。

NB。不知道它是否是重要的,但网站是在专用服务器上运行的。

2 个答案:

答案 0 :(得分:0)

我找到的答案包括设置服务器根目录下的所有域,然后简单地放置没有虚拟文件夹的重定向。

所以对于mydomain.com/de/germanpage.html

这条规则:

RewriteRule ^de/germanpage\.html$ page.php?lang=de

成为:

RewriteRule ^germanpage\.html$ page.php?lang=de

必须有一个更简单的解决方案(因为现在我不能拥有.de / contact.html和.fr / contact.html),但至少它可行。

答案 1 :(得分:-1)

您可以使用软链接而不是创建物理文件夹。 Click here to find out more about Symbolic link

转到您域中的根文件夹(假设您的根文件夹中有index.php) myserver.com

现在执行以下命令

ln -s es
ln -s de
ln -s fr

现在,如果您访问http://myserver.com/fr/index.php 将要执行的文件是 http://myserver.com/index.php