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进行操作?
感谢。
答案 0 :(得分:3)
只有第二个答案是正确答案。
此外,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