htaccess重定向文件夹结构中的子文件夹

时间:2013-06-19 06:53:14

标签: .htaccess

o.k, 我看到类似的问题一直在被问到,但经过多次调整后,我仍然无法让它发挥作用。

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

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进行操作?

感谢。

1 个答案:

答案 0 :(得分:3)

mod_rewrite - change URL case

只有第二个答案是正确答案。

此外,RewriteMap必须位于Server config或VirtualHost

我的通用解决方案:

<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>

请记住,在每个目录中的RewriteRule(.htaccess是每个目录设置)设置中,您省略了匹配模式的第一个斜杠。

在Ubuntu Server 12.04.2上检查Apache 2.2.22