Apache mod_rewrite网址

时间:2013-12-03 18:39:59

标签: apache .htaccess

我有一个类似以下的网址:

http://www.domain.com/us/en/

我想重定向到:

http://www.domain.com/en_US/

实现这一目标的最简单方法是什么?

谢谢。

编辑:对于许多语言位置组合,这将是动态的。

更多信息:更简单的问题是有没有办法从第一个网址获取所有变量,并在第二个网址中使用它们进行正确的重定向。

http://www.domain.com/a/b/c/d

要:

http://www.domain.com/d/c/b/a

1 个答案:

答案 0 :(得分:1)

在Apache config中添加以下行:

RewriteMap uppercase int:toupper

并重新启动服务器。

然后在DOCUMENT_ROOT/.htaccess文件中添加此规则:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-z]+)/([a-z]+)/?$ /$2_%{uppercase:$1}/ [L,R]
  

http://www.domain.com/a/b/c/d要:http://www.domain.com/d/c/b/a

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ /$4/$3/$3/$1/ [L,R]