2013-10-16 26 views
1

我試圖將我所有的.less文件路由到一個php文件進行處理。 php文件獲取.less文件網址並返回處理text/css如何處理通過服務器路由收到的php文件?

我有這行我.htacces文件:

Options +FollowSymLinks +ExecCGI 

<IfModule mod_rewrite.c> 

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

</IfModule> 

上述工程預期和路由.less文件到PHP。

我用這條線來獲取URL在PHP(heres the full code):

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

// .. some lines later 

$css = file_get_contents($file); 

但是!的PHP拋出一個錯誤,因爲它無法找到文件少:

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

如果我手動發送在php處理器工作的路徑。

  • 我在htaccess文件中做錯了什麼?
  • 問題在PHP?

回答

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] 
+0

我從該重寫規則中收到錯誤..'找不到對象! – hitautodestruct

+0

嗯不知道是否有錯誤嘗試:'RewriteRule ^(。+?\。less)$ renderless.php?url = $ 1 [L,QSA,NC]' – anubhava

+0

對不起,我的壞。只需複製粘貼。重寫規則的作品,但PHP仍然拋出一個錯誤''http://' – hitautodestruct

相關問題