【问题标题】:Redirect all PDFs, but dont allow the pdfviewer to be redirected重定向所有 PDF,但不允许重定向 pdfviewer
【发布时间】:2021-07-23 02:53:16
【问题描述】:

我有以下场景:

  • 我希望将所有 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,但同样的重定向也会发生在那里。

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

【问题讨论】:

    标签: regex apache mod-rewrite


    【解决方案1】:

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

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

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

    【讨论】:

    • 它大部分工作但给了我一个状态400 Bad Request
    • 它是/etc/apache2/文件夹中的一个conf,包含在default-ssl.conf中
    • 这就是我所拥有的一切
    猜你喜欢
    • 2017-05-25
    • 2019-03-21
    • 2013-07-02
    • 2017-05-25
    • 1970-01-01
    • 2013-12-07
    • 2012-11-18
    • 2023-03-21
    • 2018-12-14
    相关资源
    最近更新 更多