2

我正在尝试提出一个规则,它将所有 PDF 递归地重定向到不同的目录,除了我正在做的更改之外保留路径。

初始目录是/wp-content/uploads 目标目录是/build/wp-content/uploads

所以/wp-content/uploads/2013/03/LW_Stevens.pdf

将重定向到 /build/wp-content/uploads/2013/03/LW_Stevens.pdf

RewriteEngine On
RewriteRule ^wp-content/uploads/*/(.+\.pdf)$ build/wp-content/uploads/*/$1 [L]

显然 /*/ 部分是错误的,我该如何正确地做到这一点?

4

3 回答 3

2

这是我在初始目录后匹配或不匹配路径的建议。如果初始目录后没有路径,则忽略。

RewriteRule ^wp-content\/uploads\/(?:(.+)\/)?(.+\.pdf)$ build/wp-content/uploads/$1/$2 [L]

您可以在此处查看返回的匹配项: http ://rubular.com/r/16io6ZVSJc

于 2013-04-23T21:33:38.873 回答
1

用这个替换你的规则:

RewriteRule ^(wp-content/uploads/.*?/[^.]+\.pdf)$ /build/$1 [L,NC]

并确保将此规则置于 .htaccess 中的其他标准 Wordpress 规则之上。

于 2013-04-23T21:39:36.000 回答
0

将两个答案的混合用于wordpress。

插件:John Godley 重定向

重定向类型:正则表达式 原始 url:^(/pdfs/(?:(.+)/)?(.+.pdf)) 目标 url:URL$1

于 2019-12-09T09:31:16.490 回答