可能的重复项:
.htaccess 将图像文件重写为 PHP 脚本
当用户访问不是 PHP 文件的页面/文件时,如何执行 PHP 脚本?
例如,如果他们访问了一个.css文件,我将如何制作它,以便在他们访问它之前执行php代码?
这是一种更简单的方法,但您可以让 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 {
}
与其将处理程序添加到非 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['REQUEST_URI'] 并找出请求最初来自哪里,如果它是您的 css 文件,您可以打开该文件,读取它处理它,然后将其处理的内容回显给用户。
此方法可防止下载文件。