用户访问指定类型的文件时执行PHP脚本

时间:2012-06-28 01:03:20

标签: php

  

可能重复:
  .htaccess rewrite image file to php script

当用户访问非PHP文件的页面/文件时,如何执行PHP脚本?

例如,如果他们访问了.css文件,我将如何制作它以便我可以在访问它之前执行php代码?

2 个答案:

答案 0 :(得分:1)

这是一种更简单的方法,但您可以让PHP输出CSS并配置服务器以将CSS文件解析为PHP文件:

所以,如果你正在使用Apache,你会做这样的事情:

AddType application/x-httpd-php .css

然后,在您的CSS文件中,执行以下操作:

<?php
// Code to execute because user is accessing CSS file

// Output CSS below here
header("Content-type: text/css"); 
?>
body {
}

答案 1 :(得分:0)

而不是向非php文件添加处理程序,这意味着apache会尝试将它们解析为php并可能发现错误(例如具有<?xml?>声明的XML文件),您可以执行以下操作:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]        # if URI is not index
    RewriteCond %{REQUEST_FILENAME} !-f   # and URI is not file on disk
    RewriteCond %{REQUEST_FILENAME} !-d   # and URI is not directory on disk
    RewriteRule . /index.php [L]          # redirect to index
</IfModule>

将不存在的URI的所有流量重定向到主应用程序引导程序index.php

通过仅为要重定向的特定(一组)文件添加规则来修改上述内容,即使它们确实存在。在您重定向后,检查$ _SERVER [&#39; REQUEST_URI&#39;]并找出请求最初来自哪里,如果您的css文件是fopen文件,请读取它然后回显其处理的内容给用户。

此方法可防止文件被下载。