可能重複:
.htaccess rewrite image file to php script當用戶訪問指定類型的文件執行PHP腳本
我怎麼能執行當用戶訪問一個網頁/文件是一個PHP腳本不是PHP文件?
例如,如果他們訪問了一個.css文件,我該如何使它能夠在他們訪問它之前執行php代碼?
可能重複:
.htaccess rewrite image file to php script當用戶訪問指定類型的文件執行PHP腳本
我怎麼能執行當用戶訪問一個網頁/文件是一個PHP腳本不是PHP文件?
例如,如果他們訪問了一個.css文件,我該如何使它能夠在他們訪問它之前執行php代碼?
這是一個比較簡單的方法,但你可以讓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 {
}
而不是增加處理器到非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文件,則打開該文件,讀取該文件,處理該文件,然後將處理後的內容回顯給用戶。
此方法保護文件不被下載。
它只會處理CSS,HTML,JavaScript和圖像文件。這仍然適用? – maxhud
如果您確實希望所有HTML/CSS/JavaScript文件都具有PHP邏輯,那麼使用'AddType'的其他解決方案更容易,如果您不希望Apache嘗試執行每個HTML/CSS/JavaScript作爲PHP,因爲只有很少有HTML/CSS/JavaScript文件具有PHP邏輯,那麼這個解決方案會更好 –
使用Apache'RewriteRule'來實現處理程序腳本。 – mario