0

可能重复:
.htaccess 将图像文件重写为 php 脚本

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

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

4

2 回答 2

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 {
}
于 2012-06-28T01:05:57.187 回答
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['REQUEST_URI'] 并找出请求最初来自哪里,如果它是您的 css 文件,则打开文件,读取它处理它,然后将其处理后的内容回显给用户。

这种方法可以保护文件不被下载。

于 2012-06-28T01:13:17.640 回答