Php 不为我的网站的非用户显示pdf文件

Php 不为我的网站的非用户显示pdf文件,php,Php,我有一个使用PHP开发的网站,它有用户可以使用用户名和密码访问该网站。我的主机中有一个目录,在这个目录中我保存了我的PDF文件。我只希望我的成员访问这些PDF文件。但是,由于路径是knkown,我如何强制非用户不下载PDF。有什么解决办法吗。 例如,如果路径是在浏览器(如www.mysite.com/pdfs/sample.pdf)中输入的,并且如果此人不是该站点的成员,我希望将他/她引导到注册页面。İ用php有办法做到这一点吗?你可以试试这个 在Apache HTTP服务器中启用mod_rew

我有一个使用PHP开发的网站,它有用户可以使用用户名和密码访问该网站。我的主机中有一个目录,在这个目录中我保存了我的PDF文件。我只希望我的成员访问这些PDF文件。但是,由于路径是knkown,我如何强制非用户不下载PDF。有什么解决办法吗。 例如,如果路径是在浏览器(如www.mysite.com/pdfs/sample.pdf)中输入的,并且如果此人不是该站点的成员,我希望将他/她引导到注册页面。İ用php有办法做到这一点吗?

你可以试试这个

  • 在Apache HTTP服务器中启用
    mod_rewrite
    模块
  • .htaccess
    文件中,将请求任何PDF文件的URL重写为PHP文件
  • 创建一个将对用户进行身份验证的PHP文件
  • 在PHP文件中,如果用户已通过身份验证,请下载所需的PHP文件。PDF文件名可以在
    $\u GET['file']
    中找到
  • 作为下载文件的PHP代码

    header('Content-type: application/pdf');
    header('Content-Disposition: attachment; filename="download.pdf"');
    readfile("{$_GET['file']}.pdf");
    
    .htaccess
    文件中重写规则

    RewriteRule ^(.+).pdf$  /user_pdf_download.php?file=$1.pdf [L,NC,QSA]
    

    这里我做了一些假设。您可以根据需要进行修改。

    不要直接提供这些文件,请在验证会话后使用PHP脚本提供这些文件。您可以将URL重写为PHP脚本,以检查登录状态。