请知悉:本文最近一次更新为 8年 前,文中内容可能已经过时。

这是一个朋友提出的,解决办法当然是通过判断请求中的语言来分别rewrite跳转。找了下国外的文章,大概翻译如下:

服务器环境是Linux。

执行:

httpd -M | grep rewrite

如果输出:

Syntax OK
rewrite_module (shared)

表示rewrite模块是加载好的。没加载的自己想办法编译进去。

然后编辑虚拟主机的文件:

# /ect/httpd/conf.d/virtual_hosts.conf
<VirtualHost *:80>
ServerName my-site.com
DocumentRoot "/var/www/html/my-site"

RewriteEngine On

## Rewriting url for IT browser
RewriteCond %{HTTP:Accept-Language} ^it [NC]
RewriteRule ^/$ https://my-site.com/it/foo-page [L,R=301]

## Rewriting url for EN browser
RewriteCond %{HTTP:Accept-Language} ^en [NC]
RewriteRule ^/$ https://my-site.com/en/foo-page [L,R=301]
</VirtualHost>

功能就是判断it和en分别进行跳转,更详细的,带参数的啥的自己可以看看Apache常用rewrite是怎么写的,比如去除www的,就明白了。

翻译整理自:https://www.giuseppeurso.eu/en/url-redirection-according-to-browser-language-apache-mod_rewrite/


如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。

尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。


与《Apache根据语种跳转不同域名》相关的博文:


留言

avatar
😀
😀😁😂😅😭🤭😋😘🤔😰😱🤪💪👍👎🤝🌹👌