PHP / Htaccess - 加载器的问题

时间:2011-08-28 15:04:02

标签: php html include

我在根目录中有一个htaccess文件,它将页面的每个请求重定向到特定文件:

RewriteCond %{REQUEST_URI} !^/loader.php(.*)?$ [NC]
RewriteRule ^(.*)$         /loader.php?url=$1    [QSA,L]

现在loader.php

中的重定向很简单
include($_SERVER['DOCUMENT_ROOT'] . '/' . $_GET['url']);

我只是包含了网址,例如admin/index.php

如果我保留代码,加载器将包含文件并打印正确的HTML,但它不会加载任何CSS或JS脚本。如果我放echo "test"; 就在include之前,加载器将加载CSS文件。这是杀了我的东西。我是否必须在HTTP标头中指定一些内容?

我已经尝试将<base url="" />放在index.php的标题中,但没有结果, 但另一个奇怪的事情是,如果我检查页面并点击链接,我会看到正确的CSS。


更新1

我打印了headers_list();。我注意到一件事 - 当我在echo中打印headers_list时,数组会显示内容类型,因此我尝试使用header()函数自行添加它,但没有结果。仍在努力。


更新2

我注意到了另一件事;如果我将一个<style></style>标记与一些CSS放在一起它会正常工作,但如果我使用<link />标记则不行。这没有任何意义。

1 个答案:

答案 0 :(得分:2)

您必须为css和javascript(以及图片等)发送正确的MIME标头。 最简单的是让apache处理这些请求。将所有CSS,JS和图像放在名为“assets”的文件夹中,然后将htaccess更改为

RewriteCond %{REQUEST_URI} !^/assets/
RewriteCond %{REQUEST_URI} !^/loader.php(.*)?$ [NC]
RewriteRule ^(.*)$         /loader.php?url=$1    [QSA,L]