0

我有一个多语言网站,其中包含一些链接,例如mysite.com/about.html. 对于所有语言,我都有菜单中使用的单词的翻译。

我希望我的 url 对于不同的语言是动态的。比如我的关于页面的链接de将是mysite.com/de/de-about-translation.htmlde-about-translation.html内容保存在该语言的文件中de

更多说明:

我有一个用于在我的网站中选择语言的菜单。在这里用户可以在语言之间切换。当任何人想切换到不同的语言时,我想将所有菜单链接更改为选定的语言。

我有一个文件用于每种语言的菜单翻译。对于 Svenska,我的文件名是 sv.php,我的文件内容如下:

   $_lang["about_tr"] = "about-translation-of-Svenska ";
   $_lang["archive_tr"] = " archive-translation-of-Svenska ";


 For Deutsch language file contents:


  $_lang["about_tr"] = "about-translation-of-Deutsch ";
  $_lang["archive_tr"] = " archive-translation-of-Deutsch ";

目前,我有如下链接:

mysite.com/about.html                 
mysite.com/archive.html 

我想要 Deutsch 语言的链接,例如:

mysite.com/de/about-translation-of-Deutsch.html
mysite.com/de/about-translation-of-Deutsch.html

对于 Svenska 语言,这些链接应该是这样的:

mysite.com/se/about-translation-of-Svenska.html
mysite.com/se/archive-translation-of-Svenska.html

等等每种语言。

What kind of `RewriteRule` should I use in htaccess ?
4

1 回答 1

0

示例:http://mysite.com/de/arkivhttp://mysite.com/arkiv.html?lang=de

您可以在根目录的一个 .htaccess 文件中尝试类似的操作。

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}   !\.html             [NC]
RewriteRule ^([^/]+)/([^/]+)/?  /$2.html?lang=$1 [L,NC]

静默地图

http://mysite.com/LangCode/filename显示在浏览器的地址栏中

至:

http://mysite.com/filename.html?lang=LangCode

选项:

如果您希望使用单个脚本(例如 LanguageScript)来处理所有语言,只需替换此行:

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

有了这个:

RewriteRule ^([^/]+)/([^/]+)/?  /LanguageScript.html?lang=$1 [L,NC]
于 2013-03-28T06:43:42.063 回答