重定向所有 PDF,但不允许重定向 pdf 查看器

Redirect all PDFs, but dont allow the pdfviewer to be redirected

我有以下场景:

我的想法如下:

RewriteEngine On
RewriteCond %{HTTP_REFERER} "!^/PDF"
RewriteRule "(.*)\.pdf" "/PDF/?file=%{REQUEST_URI}" [R=301,L]

例如,如果我打开 http://example.com/some/path/a.pdf。它会将我重定向到 http://example.com/PDF/?file=/some/path/a.pdf,但它应该会加载 PDF,但那里也会发生相同的重定向。

但由于某种原因它不起作用。有人有解决办法吗?

您可以将此规则与否定前瞻一起使用:

RewriteEngine On

RewriteCond %{HTTP_REFERER} !/PDF/
RewriteRule ^/(?!PDF/).+\.pdf$ /PDF/?file=[=10=] [L,NC,QSA,R=301]

(?!PDF/) 是否定前瞻,忽略开头已经有 /PDF/ 的 URI。