Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess htaccess多语言站点_.htaccess_Multilingual - Fatal编程技术网

.htaccess htaccess多语言站点

.htaccess htaccess多语言站点,.htaccess,multilingual,.htaccess,Multilingual,大家好,感谢您提供的任何提示/信息 我们有一个静态网站,大约有100页(html)英文版 现在,我们将其升级为3种语言的动态部件 我们想做的是: 英文版:/path/to/page.html 在其他版本中:/language/path/to/page.html 在这两种情况下,实际内容都由一个php文件提供,类似于page.php?lang=english或page.php?lang=french 一般重写规则如下所示: RewriteRule ^/path/to/page.html$ p

大家好,感谢您提供的任何提示/信息
我们有一个静态网站,大约有100页(html)英文版
现在,我们将其升级为3种语言的动态部件
我们想做的是:

英文版:
/path/to/page.html

在其他版本中:
/language/path/to/page.html


在这两种情况下,实际内容都由一个php文件提供,类似于
page.php?lang=english
page.php?lang=french


一般重写规则如下所示:

RewriteRule ^/path/to/page.html$ page.php?lang=$1 [NC,L]
我的问题是我不知道如何根据
$lang
修改此规则
所以,如果
$lang=english
或者
如果$lang=''
,规则将被写入
/path/to/page.html


在所有其他lases中,规则将是
$lang/path/to/page.html




这可以通过htaccess实现吗

首先,最好有一套内容,而不是每个语言都有重复的内容(如果我理解正确的话)

我们的网站上有多种语言(工作中),我们将翻译存储在数据库中,然后加载所选语言的相应翻译

但如果这种方法对你很有效,那么你可以忽略这一点:)

我做过类似的事情,可能会有所帮助:

# Force English
# for http://www.website.com/
RewriteRule ^$ page.php?lang=EN

# English
# for http://www.website.com/EN/
RewriteRule ^EN/?$ page.php?lang=EN

# Other Languages
# for http://www.website.com/DE/ etc
RewriteRule ^(DE|FR|ES)/?$ $1/path/to/page.php?lang=$1

这些规则正确吗?你没有根据前两条规则多次重写吗?是的,有正确的。第一条规则适用于未通过的语言,因此默认为英语,第二条规则适用于通过的语言。