我正在尝试完成特定的 .htaccess 重写,但是我的正则表达式技能限制了我这样做;
示例 1:www.domain.com/dir1/dir2/dir3/file.txt 应变为 www.domain.com/dir1/dir2/file.txt
示例 2:www.domain.com/dir1/dir2/dir3/dir4/file.txt 也应变为 www.domain.com/dir1/dir2/file.txt
示例 3:www.domain.com/dir1/dir2/dir3/dir4%2Ffile.txt 也应变为 www.domain.com/dir1/dir2/file.txt
等等。由于我事先不知道 dir2、dir3、dir4 等等是什么,所以可能应该使用正则表达式。另外,我事先不知道目录会有多深(是否会有 dir3、dir4 甚至 dir5)。还应该识别 Urlencoded 斜线。使用 php 来处理这个问题不是一个选择。
任何帮助将不胜感激!
答案1
要剥离第三个和后续目录:
RewriteRule ^/(dir1)/([^/]+)/(.+)/([^/]+)$ $1/$2/$4 [L]