1

我有以下情况:

  • 我希望将所有 PDF 重定向到/PDF/目录
  • /PDF/不应重定向所有请求的 PDF

我的想法如下:

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,但同样的重定向也发生在那里。

但由于某种原因,它不起作用。有没有人有解决方案?

4

1 回答 1

2

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

RewriteEngine On

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

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

于 2021-04-29T17:50:08.380 回答