2010-04-06 47 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 ... 

我不能測試結果的原因我現在不在家。