【发布时间】:2016-10-28 01:32:08
【问题描述】:
我有一个具有这种结构的多语言网站http://www.url.com/en/、http://www.url.com/it/、http://www.url.com/pt/ 等。
我现在的问题是,当您访问链接 url.com 时,我将有 3 个重定向。
- 致
http://url.com - 致
http://www.url.com - 致
http://www.url.com/en/
如何才能只有 2 个重定向?如果您访问http://url.com 以重定向到http://www.url.com/en/
在我的 htaccess 文件中,我有这行。
RewriteCond %{HTTP_HOST} ^url.com [NC]
RewriteRule ^(.*)$ http://www.url.com/$1 [L,R=301]
这个从 url.com 重定向到 http://www.url.com。重定向后,一个 php 文件脚本识别了该域,并再次重定向到 /en/
$url= strpos($_SERVER['REQUEST_URI'],"/".$lang."/");
if($url!==0){ Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.url.com/en/" ); }
之后我有一些条件可以检查你是否使用其他语言。
if($lang == "pt"){$langcheck = "pt"}
我的链接是这样创建的:
RewriteRule ^([_A-Za-z0-9-]+)\/$ index.php?page=index&lang=$1 [L]
那么我应该在 htaccess 中写什么来为每种语言工作。因为如果我将 RewriteRule 更改为 url.com/en/,其他语言将不再起作用。
【问题讨论】:
-
对不起,我无法理解您如何获取语言以及如何重定向。
-
当您进入 url.com 时,如果 URL 与 url.com/en/ 不同,我会检查 functions.php。如果不同,我会重定向到 URL url.com/en/。只有当您访问链接 url.com 时才会出现这种情况,但如果您键入 url.com/it/,我会看到还有另一种语言。我的问题是当您访问 url.com 时(我想第一次被重定向到 url.com/en/,而不是 www.url.com,然后是 www.url.com/en/。跨度>