1

是否可以DefaultLanguage根据环境变量或重写条件设置 in .htaccess?

4

2 回答 2

1

一些替代方案的建议基于en.example.com/aout

使用命令行界面

启动apache

sudo bash -c 'export _LANG=en-US && /Applications/MAMP/bin/startApache.sh'

并在 .htaccess

DefaultLanguage ${_LANG}

来自anubhava先前的回答

在 .htaccess 中使用 FilesMatch

<FilesMatch "^en\.">
DefaultLanguage en-US
</FilesMatch>

<FilesMatch "^en-US\.">
DefaultLanguage en-US
</FilesMatch>

<FilesMatch "^es\.">
DefaultLanguage es
</FilesMatch>

来自:http ://www.askapache.com/htaccess/using-http-headers-with-htaccess.html#FilesMatch_Directive

在 .htaccess 中使用 mod_rewrite

RewriteEngine On
RewriteBase /

#get language from host name
RewriteRule ^ - [E=LANG:en]
RewriteCond %{HTTP_HOST} ^(es|fr|en|se)\. [OR]
RewriteRule ^ - [E=LANG:%1]

Header always set Content-Language "%{LANG}e"
于 2014-05-17T14:32:21.320 回答
1

您可以像这样使用 shell 环境变量DefaultLanguage

DefaultLanguage ${_LANG}

_LANG在Apache 进程启动之前设置的 env 变量在哪里。我将我的 Apache 启动为:

sudo bash -c 'export _LANG=de && /Applications/MAMP/bin/startApache.sh'
于 2014-05-15T14:51:00.257 回答