在没有 PHP 扩展名的 CSS 文件中包含 PHP

Include PHP inside CSS file without PHP extension

我知道我可以将文件命名为 main.css.php,然后在文件中设置 headers,如下所示:

<?php header("Content-type: text/css; charset: UTF-8"); ?>

然后我可以动态设置我的样式,并且我可以正常工作。

但是,我想通过将文件名简单地设为 main.css 而不公开 PHP 扩展名来实现相同的效果。我怎样才能实现这一目标?服务器是 运行 Apache 2,位于 Ubuntu。

当前 HTML:<link href="main.css.php">
期望 HTML:<link href="main.css">(仍包括 PHP)

你可以使用mod_rewrite。 在您的 css 目录中创建 .htaccess 文件并放入此代码:

RewriteEngine on
RewriteBase /your_css_dir/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ .php [L]

这仅适用于 apache2 和 php?那么一个想法是将 .css 解释为 .php 这可以通过编辑包含 php 扩展名的 .conf 或在配置文件中的某处找到这一行来完成:

AddType application/x-httpd-php .php

并编辑以显示

AddType application/x-httpd-php .php .css .phtml .etc .etc