Web服务器-访问文件时如何执行PHP脚本?

Web服务器-访问文件时如何执行PHP脚本?,php,web-services,web,modx,Php,Web Services,Web,Modx,我希望在访问web服务器上的文件时运行PHP代码(例如/../../somefile.pdf) 当用户第一次访问网站时,我需要显示免责声明。我使每次访问网页时执行PHP脚本成为可能,但我不知道在访问文件而不是网页时如何运行脚本。 这可能吗 谢谢大家! 当您想要跟踪下载时,有两种方法: 将下载URL更改为通过PHP文件,即,不要使用尝试 首先使用.htaccess中的rewrite(Apache rewrite mod)将下载URL重定向到PHP文件,例如: RewriteRule^downloa

我希望在访问web服务器上的文件时运行PHP代码(例如/../../somefile.pdf)

当用户第一次访问网站时,我需要显示免责声明。我使每次访问网页时执行PHP脚本成为可能,但我不知道在访问文件而不是网页时如何运行脚本。 这可能吗


谢谢大家!

当您想要跟踪下载时,有两种方法:

  • 将下载URL更改为通过PHP文件,即,不要使用
    尝试
  • 首先使用.htaccess中的rewrite(Apache rewrite mod)将下载URL重定向到PHP文件,例如:
    RewriteRule^download\u directory/(.*)$/download.php?文件=$1[L,QSA]
  • 在文件download.php中,您还有两个选项:

  • 使用
    文件
    参数中的路径读取文件,并使用PHP回送输出。(此方法是不安全的,因为用户可能会修改
    文件
    参数中的路径,并获取他不应该访问的文件。)
  • 由于您的文件位于webroot中(即可以直接访问),因此最好在跟踪代码完成执行后,使用
    头('Location:'.$\u GET['file']),将用户重定向到实际文件

  • 对于原作者来说可能有点晚了,但这正是MODX的完美之处

    静态资源是托管在服务器上的真实文件的抽象,在本例中,它允许您以与标准网页请求相同的方式执行已在使用的相同代码段/插件。不需要。需要htaccess mods或自定义标头

    更多信息:


    如果在.htaaccess中使用重写,是否会得到一个无限循环
    header('Location:'.$\u GET['file'])
    会将我重定向到重写的同一URL。或者我误解了什么……是的,这是可能的。当您从PHP重定向到不会触发重写的文件时,尝试添加一个特殊参数。这是为了进化还是革命?