我已經繼承了大量嚴格編碼的PHP文件,其輸出需要以編程方式進行修改。PHP include()受mod_rewrite影響
要做到這一點,我選擇了通過其他PHP文件來運行它們,rewriter.php,看起來大約是這樣的:
<?php
if(!preg_match('/^([a-zA-Z0-9\-_]*)$/', $_GET['page']))
die('Incorrect page supplied.');
ob_start('changeOutput');
include($_GET['page'].'.php');
ob_end_flush();
function changeOutput ($buffer) {
...
}
?>
我使用mod_rewrite,迫使他們通過這個文件運行:
RewriteEngine On
RewriteRule ^([^\.]*)\.php$ rewriter.php?page=$1
但是顯示的錯誤消息讓我相信include()語句受到上面RewriteRule的影響,也就是說它試圖通過rewriter.php等運行rewriter.php。
我想有很多方法可以解決這個問題,但我特別想找一種方法來避免include()語句受到mod_rewrite的影響。我瀏覽了模塊文檔,但找不到任何相關的內容。
當然,這種方法的替代方案也是受歡迎的。
謝謝你的時間和想法。
最好的問候,
丹尼爾
極不可能。又有什麼錯誤信息? – Gleb 2009-05-22 18:18:11
您確定您的腳本正在從您期望的目錄運行嗎?這可能看起來像被重定向。 – Dave 2009-05-22 18:27:17
你正在從每個目錄conf文件(.htaccess)文件或主apache conf文件(httpd.conf文件)的上下文中運行這些重寫規則。conf)文件? – 2009-05-22 20:25:49