重写规则按位置删除目录,而不是名称

时间:2013-01-10 18:12:05

标签: .htaccess rewrite

我想要网址

www.example.com/dir1/dir2/current-file.html

......指向......

www.example.com/dir1/current-file.html

... WHERE ...

current-file.htmldir2是可变的。 (dir1不可变)

这是否可以使用htaccess文件?

修改

目前我有:

Options +FollowSymLinks
RewriteEngine On  
RewriteCond %{SCRIPT_FILENAME} !-d  
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^.*$ ../dir1/current-file.html

但是这个文件是硬编码的,并假设current-file位于dir2。如果可能的话,我宁愿按网址中的dir2定位。

2 个答案:

答案 0 :(得分:1)

试试这样:

RewriteRule ^dir1/[^/]/(.+)\.html /dir1/$1.html

答案 1 :(得分:1)

这是一个选项:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} dir1/[^/]+/([^/]+)/?   [NC]
RewriteRule .* dir1/%1    [R=301,L,QSA]

它将永久重定向:

http:www.example.com/dir1/anyfolder/anyfile

要:

http:www.example.com/dir1/anyfile