2013-06-19 535 views
1

o.k, 我看到類似的問題一直在問,但經過很多調整後,我仍然無法使其工作。htaccess文件夾結構中子文件夾的重定向

我想重定向的這所有版本:

http://example.com/en/something 

要這樣:

http://example.com/EN/something 

例如,這樣的:

http://example.com/en/2007/06/08/the-3-basic-variations-of-hummus/ 

要這樣:

http://example.com/EN/2007/06/08/the-3-basic-variations-of-hummus/ 

我該如何使用htaccess來做到這一點?

謝謝。

回答

3

mod_rewrite - change URL case

只有第二個答案是正確的。

此外,RewriteMap指令必須在服務器配置或虛擬主機

我對一般使用的解決方案:

<VirtualHost *:80> 
    ... 
    <IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteMap uppercase int:toupper 
    RewriteRule ^/(en|he)(/.*)?$ /${uppercase:$1}$2 [L,R=301] 
    </IfModule> 
    ... 
</VirtualHost> 

所以,你可以添加分隔語言|

對於沒有訪問服務器或虛擬主機的配置和使用特定字符串:

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteRule ^en(/.*)?$ /EN$1 [L,R=301] 
</IfModule> 

請記住,在重寫規則中每目錄(的.htaccess是每個目錄設置)設置你省略第一削減匹配模式。

經過在Apache 2.2.22 Ubuntu服務器12.04.2

+1

+1好細緻,更重要的是一個正確的答案上。 – anubhava

+0

工程就像一個魅力 - 謝謝耶胡達! –

相關問題