2010-04-06 56 views
0

我有一个多语言网站,并且我使用php获取变量来设置语言设置的cookie。我有多个子文件夹(http://www.site.com/eshttp://www.site.com/de),每个都有一个相应的.htaccess文件。当访问这些文件夹,.htaccess文件这样做是为了“默默”将用户重定向并添加适当的PHP变量:.htaccess为语言选择添加隐藏的php变量

------- 
Options +FollowSymlinks 
RewriteEngine on 
RewriteOptions MaxRedirects=10 
rewriterule ^http://www.site.com/es/$ http://www.site.com/?l=es [P,R=301] 
rewriterule ^(.*)$ http://www.site.com/$1?l=es [P,R=301] 
------- 

当有人访问根目录:http://www.site.com,我想添加一个后缀?l=en“悄无声息“到网址。我怎么做?谢谢。

回答

0

我不认为这是可能的你想要的方法。

但是,你可以(在大约方式轮)修改代码:

RewritRule ... proxy_add_l.php

在其中,代码:

<?php 
$_GET['l'] = $_REQUEST['l'] = 'en'; 
require 'index.php'; 
?> 

注意这是真的,真的很糟糕,应该只是作为最后的手段。

难道你不能只是将它们重定向到/ en看起来更清洁?

+0

问题是我们已经有一个成熟的网站,许多网页已经有一个pagerank。如果我们添加'/ en',我们会失去这些。 – 2010-04-06 19:47:55

+0

好的。如果没有设置,只需修改代码即可假定语言,那么该怎么办? – 2010-04-06 19:57:56

+0

我不太清楚为什么我没有想到这个建议。我只是检查'l'是否被设置为一个get变量,并且如果没有将语言变量设置为英语。谢谢蒂姆。 – 2010-04-06 20:24:12

0

我认为,如果你想有一个固定的值,这是完美的可能有这样的事情:

rewriterule ^http://www.site.com/$ http://www.site.com/?l=en ... 

我不能测试结果的原因我现在不在家。