2012-06-28 17 views

回答

1

這是一個比較簡單的方法,但你可以讓PHP輸出CSS和配置服務器來解析CSS文件作爲PHP文件:

所以,如果你使用Apache,你會做這樣的事情這樣的:

AddType application/x-httpd-php .css 

然後,在你的CSS文件,這樣做:

<?php 
// Code to execute because user is accessing CSS file 

// Output CSS below here 
header("Content-type: text/css"); 
?> 
body { 
} 
+0

這將讓用戶保存並下載css文件,如果我沒有指示他們離開它之前,他們能夠? – maxhud

+1

是的,他們將能夠保存該文件。 – nickb

+0

這將是一個CSS文件而不是PHP文件? – maxhud

0

而不是增加處理器到非PHP文件的這意味着阿帕奇將盡力把它解析爲pH值p和可能發現錯誤(如具有<?xml?>聲明XML文件),你可以做到以下幾點:

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
    RewriteRule ^index\.php$ - [L]  # if URI is not index 
    RewriteCond %{REQUEST_FILENAME} !-f # and URI is not file on disk 
    RewriteCond %{REQUEST_FILENAME} !-d # and URI is not directory on disk 
    RewriteRule . /index.php [L]   # redirect to index 
</IfModule> 

重定向所有流量不存在URI到主應用程序引導通常index.php

並通過僅爲要重定向的特定(一組)文件添加規則來適應上述情況,即使它們存在。重定向後,您檢查$ _SERVER ['REQUEST_URI']並找出請求最初來自哪裏,如果它是您的css文件,則打開該文件,讀取該文件,處理該文件,然後將處理後的內容回顯給用戶。

此方法保護文件不被下載。

+0

它只會處理CSS,HTML,JavaScript和圖像文件。這仍然適用? – maxhud

+0

如果您確實希望所有HTML/CSS/JavaScript文件都具有PHP邏輯,那麼使用'AddType'的其他解決方案更容易,如果您不希望Apache嘗試執行每個HTML/CSS/JavaScript作爲PHP,因爲只有很少有HTML/CSS/JavaScript文件具有PHP邏輯,那麼這個解決方案會更好 –