如何将所有重写x.php重命名为特定目录中的x.css?

时间:2009-02-27 13:39:33

标签: php .htaccess mod-rewrite

我需要重写一个目录中的所有文件,并且基本上使它们的扩展名为css而不是php。我想在该特定目录中使用.htaccess文件。

这样做的正确方法是什么,是否需要设置任何特殊的PHP头文件以确保文件正确读取为.css文件?

2 个答案:

答案 0 :(得分:6)

我认为您更希望将*.css的请求内部重写为*.php。所以试试这个:

RewriteEngine on
RewriteRule ^(foo/.*)\.css$ $1.php [L]

虽然foo是特定目录。

现在,您应该在PHP脚本的开头使用以下内容将输出显式声明为text/css

<?php
header('Content-Type: text/css;charset=<your charset>');

<your charset>替换为您正在使用的任何字符集/编码(可能是ISO-8859-1UTF-8)。

答案 1 :(得分:0)

如果您只是在您的网站中使用它们,那么它们不需要css扩展名。他们只需要在渲染(我假设)生成的css之前输出标题Content-Type:text / css。类似的东西适用于其他文件类型,如果你有一个生成图像的php脚本,你可以用同样的方式做,除了你将内容类型更改为image / png或jpeg或其他任何内容。

但是,如果您希望外部人员将这些生成的css文件视为具有css扩展名的文件,那么请将我所说的与Gumbo所说的混合起来。