如何修复CSS错误地作为“文本/ Html”?

时间:2015-01-27 09:10:59

标签: php apache .htaccess encoding mime-types

我有.htaccess将所有请求重定向到脚本文件(redirect.php)。

脚本文件包含所调用页面,包括index.html。同样适用于页面中的所有来源(.jpg.css等)。

问题是CSS个文件是HTML

当我检查回复标题时,它会显示Content Type : text/html而不是text/css

我试过了:

  • This solution:仍然无效。
  • AddType text/css .css之前或之后.htaccess放置RewriteRule仍然无效。
  • type="text/css"放入HTML <link>标记中:仍然无效

我该如何修复它以便将CSS作为CSS而不是HTML投放?

修改

我使用的基本.htaccess是:

AddType text/css .css
AddHandler application/x-httpd-php .css
<Files *.css>
  Header set Content-type "text/css"
</Files>
RewriteEngine on
RewriteCond %{REQUEST_URI} !/redirect.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) redirect.php?q=$1 [L]

1 个答案:

答案 0 :(得分:0)

你的.htaccess没有明显的错误。我使用this site来测试http://hostname/style.css .htaccess:

RewriteEngine On
RewriteRule ^(.*)$ redirect.php?q=$1 [NC,L]

结果网址为redirect.php?q=style.css。假设您的PHP文件使用<?php header('Content-Type: text/css');

设置适当的标头,工作

如果问题仍然存在,那么我想到的另一个想法是你的CSS文件确实不存在。如果您尝试包含http://mywebsite/style.css,请转到终端和curl http://mywebsite/style.css,只是为了确定它绝对不是Apache的404页面。如果这确实是问题,那么只是你使用了错误的CSS文件路径。