我有一个multilang网站,其中包含mysite.com/about.html
等链接。对于所有语言,我都有翻译菜单中使用的单词。
我希望我的网址对于不同语言来说是动态的。例如,de
的关于页面的链接将为mysite.com/de/de-about-translation.html
。 de-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 ?
答案 0 :(得分:0)
示例:
http://mysite.com/de/arkiv
来http://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]