【问题标题】:Using PHP Files As CSS File With CSS Extension使用 PHP 文件作为带有 CSS 扩展名的 CSS 文件
【发布时间】:2015-11-29 05:51:07
【问题描述】:

我一直在阅读有关将 PHP 文件用作 CSS 文件的内容。 我知道该怎么做,但如果可能的话,我想更进一步。

假设我有一个名为 main-styles.php 的文件,其中包含我的网站主样式表。

如果我想链接到这个文件,我只需使用<link rel="stylesheet href="http://example.com/css/main-styles.php">

足够简单,但我想要做的不是拥有.php 扩展名,而是拥有.css 扩展名,但文件仍然是.php

这可以通过mod_rewrite 或其他方式实现吗?

我在想RewriteRule ^(.+)\main-styles.php$ $1main-styles.css

这就够了吗?

如果我没记错的话,这条规则是行不通的。我不是重写规则方面的专家,所以请耐心等待。

编辑

我在.htaccess 文件中尝试了以下内容:

RewriteEngine on RewriteBase / RewriteCond %{REQUEST_URI} !\.(?:css|png|jpe?g|gif)$ [NC,OR] RewriteRule universal.css universal.php [L]

解决了,看我自己的回答。

【问题讨论】:

  • 为什么?如果是 CSS,它就是 CSS,并且应该有一个 .css 扩展名。
  • 因为它确实是一个 PHP 文件,但在我的源代码中,我希望它具有 CSS 扩展名。出于安全考虑,我试图隐藏我所有的 PHP 扩展。

标签: php css .htaccess mod-rewrite


【解决方案1】:

您可以使用 apach 模式重写的 H 或 T 标志来强制所有带有 php 扩展名的文件由 css 处理程序解析:

在 htaccess 中尝试以下操作:

RewriteEngine On
RewriteRule ^main-style\.php$ - [H=text/css]

RewriteEngine On
RewriteRule ^main-style\.php$ - [T=text/css]

上面的规则会改变main-style.php的mime类型。

【讨论】:

  • 这不是等价的吗? header("Content-type: text/css; charset: UTF-8");
【解决方案2】:

所以我终于想通了。原来我必须列出我的目录。

在我的.htaccess 中使用以下内容:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !\.(?:css|png|jpe?g|gif)$ [NC,OR]
RewriteRule css/universal.css css/universal.php [L]

我能够将样式表保留为 php 文件,但使用 css 扩展名加载它。

<link rel="stylesheet" href="http://example.com/css/universal.css">

被当作是

<link rel="stylesheet" href="http://example.com/css/universal.php">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 2020-05-14
    • 1970-01-01
    • 2012-03-10
    • 2015-03-01
    • 1970-01-01
    相关资源
    最近更新 更多