使用.htaccess文件重写多种语言的友好php URL

时间:2013-05-29 03:27:15

标签: php .htaccess

我有几个网站,我建立了一个CMS,将语言保存在XML文件中,根据页面和语言选择器,它将显示正确的数据。我可以为每个网站提供8种不同的语言,网址如下:

http://leclosdamboise.com/index.php?lang=fr

http://leclosdamboise.com/rooms.php?lang=en

http://leclosdamboise.com/hotel.php?lang=de

我正在努力让网址被重写为:

http://leclosdamboise.com/fr/index.php

http://leclosdamboise.com/en/rooms.php

http://leclosdamboise.com/de/hotel.php

我花了几个小时梳理论坛,但却找不到有效的解决方案。我的.htaccess文件目前看起来像这样:

SetEnv PHP_VER 5_TEST
SetEnv REGISTER_GLOBALS 0

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([A-Za-z0-9]+)$ index.php?lang=$1 [QSA,L]

这没有做任何事情,网址仍然是丑陋的继女版本。上面的链接是指向其中一个站点的实际链接。一旦我解决了这个问题,我需要将它解压缩到几个站点,但是我一直在努力解决这个问题。谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:2)

这应该在根目录下的一个.htaccess文件中起作用:

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} -f  [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [L]

RewriteRule ^([^/]+)/([^.]+)\.php  /$2.php?lang=$1 [L,NC,QSA]