我已经建立了一个国际网站,提供如下语言:
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。不知道它是否是重要的,但网站是在专用服务器上运行的。
答案 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