2012-04-30 66 views
2

所以我有一個帶有子目錄子域的apache服務器。我把我的目錄變成子域名。所以,而不是example.site.com/mycoolsite它是mycoolsite.example.com。換句話說,我把/var/www/mycoolsite變成/var/mycoolsite。我使用下面的代碼來執行.htaccess文件。.htaccess ErrorDocument的相對路徑

RewriteCond %{HTTP_HOST} ^mycoolsite.site.com$ [NC] 
RewriteCond %{REQUEST_URI} !^/mycoolsite/ 
RewriteRule ^(.*)$ /mycoolsite/$1 [L] 

大。現在它將目錄變成子域。現在的問題是.htaccess無法引用我的原始子域的ErrorDocument I設置。我可以去example.site.com/mycoolsite/aNonExistantDirectory/並得到正確的404我已經安裝,但是當我嘗試mycoolsite.site.com/aNonExistantDirectory/時,我得到了基本的服務器404錯誤頁面,而不是我已經設置的頁面。兩者都在同一臺服務器上。爲了解決這個問題,我可以製作一份錯誤文檔的副本,並將它們放在/mycoolsite/目錄中,但我希望我可以簡單地引用原始錯誤文檔。

的問題是,我不知道如何引用錯誤文件中/var/www/error//var/www/mycoolsite/我已經試過:那些工作

ErrorDocument 404 ../error/index.php?p=404 
ErrorDocument 404 /www/error/index.php?p=404 
ErrorDocument 404 www/error/index.php?p=404 
ErrorDocument 404 error/index.php?p=404 
ErrorDocument 404 /error/index.php?p=404 

無。在沒有第一個/或之前的..的情況下嘗試時,它將在頁面上顯示錯誤文檔行。我很難過。我希望我收錄了足夠的信息,但如果沒有,請告訴我。

+2

我不認爲apache允許您引用當前document_root之外的文件。這是一個安全的事情。你可以做的是創建一個只包含一個'include(../ error/index.php)'的虛擬php文件。 – Gerben

+0

這個工程!如果你想把它作爲答案,我會接受它。 – Err

+0

很高興幫助.. – Gerben

回答

3

我不認爲apache允許您引用當前document_root之外的文件。這是一個安全的事情。你可以做的是創建一個虛擬的php文件,其中只包含一個include(../error/index.php)