将子文件夹重定向(重写?)到父文件夹

Redirect (rewrite?) subfolders to parent folder

我已将所有 PDF 文件从几个子文件夹移动到父文件夹 /downloads/ 示例旧情况:

https://www.example.com/downloads/2011/subfolder2/subfolder3/file1.pdf
https://www.example.com/downloads/2011/subfolder4/subfolder5/subfolder6/file2.pdf
https://www.example.com/downloads/2011/subfolder7/file3.pdf
https://www.example.com/downloads/2011/subfolder7/file4.pdf

所以都是关于 /downloads/2011/

中不同子文件夹中的 PDF 文件

现在是这样的(还有很多文件):

https://www.example.com/downloads/file1.pdf
https://www.example.com/downloads/file2.pdf
https://www.example.com/downloads/file3.pdf
https://www.example.com/downloads/file4.pdf

我想将搜索引擎中的旧链接重定向到新链接。 所以实际上所有子文件夹(下载除外)都应该从旧的 url 中删除 或者 所有指向网站上所有 PDF 的旧链接,无论它们位于何处,都应重定向到下载文件夹。

我应该如何使用 .htaccess 实现这些可能性?

RewriteRule ^downloads\/.+\/(.+)$ downloads/ [R=301]

这应该已经可以解决问题了。

第一个 .+ 匹配似乎没有必要更具体,或者使用排除斜杠的字符 类;正则表达式的贪婪在这里对我们有利。

这应该适合你:

 RedirectMatch 301 ^/downloads/.+/([^/.]+)\.pdf$ /downloads/.pdf

确保清除浏览器缓存或使用不同的浏览器来测试重定向。