1

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

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

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

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

我正在尝试使用它,以便将 url 重写为如下所示:

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]

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

4

1 回答 1

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]
于 2013-05-29T04:17:05.000 回答