2012-02-08 31 views
3

我在一個目錄(style0.css,style1.css等)中有多個css文件。我如何使用htaccess將請求重定向到這些css文件,以便php可以處理請求的css文件。 ex。 /styles/style0.css -> /includes/compressor.php?i=style0.css.htaccess將css重定向到php

回答

6
RewriteEngine On 
RewriteRule ^(.*).css$ /includes/compressor.php?i=$1.css [L] 

這些.htAccess命令激活RewriteEngine。這可以讓你分析請求的URL並執行你想要的服務器。第二行是以.css結尾的所有URL,並將文件名作爲參數插入(如您在示例中所需)。

例如:

http://localhost/styles/style1.css會去

http://localhost/includes/compressor.php?i=style1.css

l標誌將告訴Apache將停止處理該請求的重寫規則。

+0

你能解釋一下嗎? [L]做什麼? – 19greg96 2012-02-08 21:42:44

+0

L標誌將告訴Apache停止處理該請求的重寫規則。 – 2012-02-08 21:44:34

+1

參考:http://httpd.apache.org/docs/current/mod/mod_rewrite.html – 2012-02-08 21:45:58

7

用這兩行添加一個.htaccess到你的css目錄。你現在可以將php代碼添加到你的css文件中,並且它將被處理:

AddHandler application/x-httpd-php .css 

php_value default_mimetype "text/css" 
+4

如果可能,最好使用重寫,因爲.css文件應該包含CSS,而不是PHP。它的語義不正確和煩人編輯,因爲你的編輯器會嘗試將文件解析爲CSS並失敗。 – 2012-02-08 21:43:28

+1

我用以下方式: 我的css是singleSheet.css?sheets [] = main.css&sheets [] = rest.css 這讓我有一張紙,內置服務器端(不包括@includes) – circusdei 2012-02-08 21:44:15

+0

我認爲這也是一個好主意,我可能會在將來使用+1,但是因爲我只想用php和類似的東西來壓縮css文件,所以我必須將相同的代碼複製到所有的css文件中如果我想改變一些東西,我將不得不編輯所有這些東西。 – 19greg96 2012-02-08 21:47:34