我有一個奇怪的問題,我無法找到文檔。我在我的服務器的以下位置有一個頁面。Mod重寫規則正在改變PHP中的CWD - 爲什麼?
{SITE_ROOT}/admin/myfolder/myfile.php
此文件使用一個包含運行駐留在服務器的根目錄的全局配置文件 - 這種相對不給自己
// {SITE_ROOT}/admin/myfolder/myfile.php
// includes {SITE_ROOT}/config.php See below explanation after edit
include('../config.php);
,直到我添加下面的.htaccess這工作得很好文件到myfolder目錄。
// {SITE_ROOT}/admin/myfolder/.htaccess
RewriteEngine On
RewriteRule ^([0-9A-Z]+)\.gif$ gif_generator.php?gifid=$1 [L]
這一規則的目的並不重要 - 事實是,上述(myfile.php)的頁面不應該受到這條規則(影響它不應該」除非我弄錯了,否則不匹配正則表達式 - 我可能會)。然而似乎在使用這個規則時,myfile.php中的include()失敗。就好像php文件的當前工作目錄由於啓用了RewriteEngine而改變了。
這是記錄任何地方,是有辦法避免這種情況的發生?
編輯 - 我錯過了一些比較重要的。原始文件({SITE_ROOT} /admin/myfolder/myfile.php)本身已被文件包含在以下位置({SITE_ROOT} /admin/frontcontroller.php)中。 myfile.php中的包含路徑實際上是相對於這個文件。我已經改變了上面的問題來反映這一點。
是重寫規則不相匹配的網址,因此這並沒有太大的意義。這就是你的.htaccess文件中的所有內容嗎? – stephenbayer
@stephenbayer - 這是整個文件。該目錄中有另一個文件使用php來動態生成gif圖像 - 因此是規則。 – calumbrodie
@stephenbayer - 道歉 - 我錯過了原始問題中相當重要的信息。現在更新。 – calumbrodie