gpt4 book ai didi

apache2 mod_rewrite 基于语言然后代理

转载 作者:行者123 更新时间:2023-12-02 13:26:52 24 4
gpt4 key购买 nike

我正在尝试将访问 www.server.com 的用户重定向到浏览器的首选语言设置。

当用户输入 www.server.com/<lang> ,/es 在下面的情况下用于西类牙语,它们被正确地代理到 smartling 翻译服务器。但是,当用户在浏览器中设置语言首选项时,他们会遇到重定向循环。

我有以下配置:

<VirtualHost *:8008>
ServerName www.server.com
ServerAlias www

ProxyPreserveHost On

RewriteEngine On

RewriteCond %{HTTP:Accept-Language} ^es [NC]
RewriteRule ^/$ es/ [R=301,L]

<Proxy http://server.sl.smartling.com/*>
Allow from all
</Proxy>

<LocationMatch "/es">
ProxyPass http://server.sl.smartling.com/es
ProxyPassReverse http://server.sl.smartling.com/es
Header add Host "www.server.com"
RequestHeader set Host "www.server.com"
</LocationMatch>

DocumentRoot /www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/www-error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/www-access.log combined

</VirtualHost>

我试过用额外的 RewriteCond 来停止循环但似乎无法做对。任何建议表示赞赏。

谢谢

最佳答案

您需要添加另一个条件来否定语言环境条件。如果在用户浏览器中设置了语言环境条件,则该条件将始终为真。尝试添加这样的条件

RewriteCond %{REQUEST_URI} !^/es

关于apache2 mod_rewrite 基于语言然后代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29784200/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com