2

所以我有一个带有子目录的子域的 apache 服务器。我把我的目录变成子域。所以而不是example.site.com/mycoolsite它的mycoolsite.example.com. 或者换句话说,我变成/var/www/mycoolsite/var/mycoolsite. 我使用以下代码使用 .htaccess 文件执行此操作。

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

伟大的。现在它将目录变成子域。现在的问题是 .htaccess 无法引用我为原始子域设置的 ErrorDocument。我可以去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

这些都不起作用。在没有第一个/或前面的情况下尝试它..会在页面上显示错误文档行。我难住了。我希望我包含了足够的信息,但如果没有,请告诉我。

4

1 回答 1

3

我认为 apache 不允许您引用当前 document_root 之外的文件。这是一个安全的事情。您可以做的是创建一个虚拟 php 文件,其中只包含一个include(../error/index.php)

于 2012-05-02T09:26:56.007 回答