1

我正在尝试将我的所有.less文件路由到要处理的 php 文件。php 文件获取.less文件 url 并返回处理后的text/css.

我的.htacces文件中有这一行:

Options +FollowSymLinks +ExecCGI

<IfModule mod_rewrite.c>

RewriteEngine On
RewriteCond %{REQUEST_URI}  (\.less)$
RewriteRule (.*)  renderless.php?url=$1 [QSA]

</IfModule>

以上按预期工作并将.less文件路由到 php.ini 文件。

我正在使用这一行来获取 php 中的 url(这里是完整的代码):

$file = $_SERVER['HTTP_HOST'] . '/' . $_GET['url'];

// .. some lines later

$css = file_get_contents( $file );

但!php 抛出错误,因为它找不到 less 文件:

load error: failed to find local.mysite.com/css/main.less' in ...

如果我手动发送路径,则 php 处理器可以工作。

  • htaccess我在文件中做错了吗?
  • 是php的问题吗?
4

1 回答 1

2

您只需要在http://此处添加:

$file = "http://" . $_SERVER['HTTP_HOST'] . '/' . $_GET['url'];

或者从文件系统中读取它:

$file = $_SERVER["DOCUMENT_ROOT"] . '/' . $_GET["url"];

顺便说一句,您的重写规则也可以简单得多:

RewriteEngine On
RewriteRule ^(.+?\.less)$ /renderless.php?url=$1 [L,QSA,NC]
于 2013-10-16T13:09:08.673 回答