使用htaccess删除主URL后的目录

时间:2013-05-04 19:52:48

标签: .htaccess mod-rewrite rewrite

使用以下url http://www.example.com/de/here/我想删除“de”目录(或者在“here”目录前面的任何内容,如果有任何东西在它前面),那么用户被定向到而是http://www.example.com/here/,这是一个确实存在的目录。

网址甚至可以是http://www.example.com/it/here/或任意其他2个字母的组合。

网址也可能只是http://www.example.com/here/,在这种情况下,我根本不需要删除任何内容。

我在这里搜索过一个解决方案,但似乎无法正常工作,所以任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:3)

你可以使用这种htaccess:

RewriteEngine On
RewriteBase /
RewriteRule ^[A-Za-z]{2}/(.*)$ $1 [L,R=301]

此代码导致重定向的示例:

http://www.example.com/de/foo/  => http://www.example.com/foo/
http://www.example.com/de/      => http://www.example.com/
http://www.example.com/it/bar/  => http://www.example.com/bar/
http://www.example.com/FR/baz/  => http://www.example.com/baz/

请注意,您将无法再使用该语言(de,it,fr ...)。

另一点,请注意这种网址(重定向将执行两次):

http://www.example.com/de/go/   => http://www.example.com/go/
http://www.example.com/go/      => http://www.example.com/

修改

现在我有更多细节,这里有一个htaccess你可以删除指定文件夹的语言:

RewriteEngine On
RewriteBase /
RewriteRule ^[A-Za-z]{2}/here/(.*)$          here/$1 [L,R=301]
RewriteRule ^[A-Za-z]{2}/anotherfolder/(.*)$ anotherfolder/$1 [L,R=301]