我下载并安装了 XAMPP,为了将我的项目很好地分开,我想根据其未来的域名为每个项目创建一个 VirtualHost。例如,在我的第一个项目中(我们称之为project.com
),我将其放在我的 Apache 配置中:
NameVirtualHost 127.0.0.1
<VirtualHost 127.0.0.1:80>
DocumentRoot C:/xampp/htdocs/
ServerName localhost
ServerAdmin admin@localhost
</VirtualHost>
<VirtualHost 127.0.0.1:80>
DocumentRoot C:/xampp/htdocs/sub/
ServerName sub.project.com
ServerAdmin [email protected]
</VirtualHost>
<VirtualHost 127.0.0.1:80>
DocumentRoot C:/xampp/htdocs/project/
ServerName project.com
ServerAdmin [email protected]
</VirtualHost>
我的 hosts 文件中有以下内容:
# development
127.0.0.1 localhost
127.0.0.1 project.org
127.0.0.1 sub.project.org
当我在浏览器中转到 时project.com
,项目成功加载。如果我转到 ,情况也是如此sub.project.com
。但是,如果我导航到:(http://project.com/register
我的网站页面之一),我会收到此错误:
Internal Server Error
The server encountered an internal error or misconfiguration and was
unable to complete your request.
错误日志显示:
[Sun May 20 02:05:54 2012] [error] [client 127.0.0.1] Request exceeded
the limit of 10 internal redirects due to probable configuration
error. Use 'LimitInternalRecursion' to increase the limit if
necessary. Use 'LogLevel debug' to get a backtrace., referer:
http://project.com/
Sun May 20 02:05:54 2012] [error] [client
127.0.0.1] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase
the limit if necessary. Use 'LogLevel debug' to get a backtrace.,
referer: http://project.com/
知道我哪些配置项出错了吗,或者如何让它正常工作?它发生在不在根目录中的任何页面上project.com
。谢谢。
答案1
正如错误消息所示,根文件夹、DocRoot 文件夹或其中一个子文件夹的 .htaccess 文件中存在错误的 RewriteCond/RewriteRule 重定向。
它正在自我循环,经过 10 次内部重定向后,Apache 会终止它以保护该进程。
答案2
您的文档根目录重叠。例如,文件 C:/xampp/htdocs/sub/index.php 将成为您的前两个 vhost 的一部分。尝试:
DocumentRoot C:/xampp/htdocs/default/
DocumentRoot C:/xampp/htdocs/sub/
DocumentRoot C:/xampp/htdocs/project/