2
我正在開發一個開源項目。我不知道該項目將安裝在最終用戶的目錄中。我需要爲爲我的項目創建的.htaccess文件添加規則,以便404和其他指向我的項目根目錄中的特定文件。安裝腳本在名爲「setup」的文件夾中調用,與root/setup/index.php等根文件夾相關。指向.htaccess文件
我使用直接從的.htaccess 404點的根到errorcode.php(也是在根文件夾)的路徑是這樣的:
$installURL = "http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['SCRIPT_NAME']);
$save= $installURL;
$str = str_replace('/setup', '', $save); //remove /setup/
$installURL= $str ;
我再打開.htaccess文件,並讓我的規則像這樣:
$fp = fopen("../.htaccess", "a");
fwrite($fp, "\n\n# ErrorDocuments \n");
fwrite($fp, "ErrorDocument 400 ". $installURL."/errorcode.php?error=400 \n");
這裏有所有400個HTTP頭文件的規則列表。
這對我來說已經工作了大約一個月了。今天,我開始變得服務器錯誤,和日誌文件說以下內容:
[Thu Oct 04 11:56:59 2012] [notice] cannot use a full URL in a 401 ErrorDocument directive --- ignoring!
[Thu Oct 04 11:56:59 2012] [alert] [client 127.0.0.1] C:/wamp/www/Project-BlackHawk/.htaccess: Unsupported HTTP response code 428, referer: http://localhost/Project-BlackHawk/setup/index.php
我的問題是,我應該使用這樣的路徑的ErrorDocument:
$installURL = dirname($_SERVER['SCRIPT_NAME']);
$save= $installURL;
$str = str_replace('/setup', '', $save); //remove /setup/
$installURL= $str ;
那麼就像我的問題的最後4行? – chriscct7
@ chriscct7是的,那是有效的。 –