在VirtualBox中从来宾操作系统访问主机操作系统上的虚拟主机

通过VirtualBox,我需要通过客户操作系统(Windows XP和7)访问主机(Mac OS X 10.6)虚拟主机

我能够访问localhost URL,并可以通过客户端浏览器中主机的本地URL(我的Mac)从客户操作系统中看到~/Username/Sites文件夹的目录结构,但在尝试访问时出现403错误深入到文件结构,例如, mymacsname.lcoal/~Username/Sites是可访问的,但是当我浏览到ymacsname.lcoal/~Username/Sites/somewebsite/时,我得到了一个403

注意:当我尝试从我的Mac(主机)浏览器访问ymacsname.lcoal/~Username/Sites/somewebsite/时,我也得到了403

编辑:

我已经检查了主机操作系统(Mac)上的访问日志,奇怪的是,如果我浏览到没有.htaccess文件的目录,我收到一个"HTTP/1.1" 200 1935响应,并且能够浏览器目录的索引或我担任它的默认网页。 如果目录中有一个.htaccess文件,我收到一个"HTTP/1.1 403 247"响应!

这将问题缩小到.htaccess文件,所以我会继续研究这个,我非常感谢你的帮助!

重新编辑

进一步说,这似乎是我的.htaccessmod_rewrite规则的问题。 我已经在下面包含了我的.htaccess代码,看起来像是应该将浏览器redirect到/Users/Jay/Sites/chassis/library/bootstrap.php但似乎我没有访问权限该文件( bootstrap.php )。

 Options +FollowSymLinks RewriteEngine On RewriteCond %{DOCUMENT_ROOT}/public/index.html !-f RewriteRule ^$ library/bootstrap.php [L] RewriteRule ^$ public/index.html [L] RewriteRule ^([a-z0-9/-]+)$ library/bootstrap.php?url=$1 [L,QSA] 

变得如此接近! 请帮我解决这个问题!

再重新编辑

如果有帮助,这里是我的主Apacheconfiguration文件( /private/etc/apache2/httpd.conf )中的一个剪辑:

 <Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all </Directory> 

您可能希望首先检查Web服务器的访问日志,以查看实际传递的内容 – 成功与失败。

这绝对是一个权限问题。

通过添加解决

 <Directory /> Options +FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> 

/private/etc/apache2/extra/httpd-vhosts.conf

我还需要编辑客户操作系统(Windows XP和7)上的主机文件,如下所示:

 192.168.123.123 somevhost 192.168.123.123 someothervhost.dev 

如果所指定的IP地址是主机操作系统的IP地址, somevhost虚拟主机…是主机操作系统上的虚拟主机的名称。

我需要将主机操作系统设置为使用静态IP,就好像它是通过DHCP分配的,每当主机操作系统的IP更改时,您都必须在客户机操作系统上编辑主机文件。

这些网站真的帮助:

http://support.microsoft.com/kb/972034#LetMeFixItMyselfAlways

http://mark-kirby.co.uk/2008/setting-up-virtual-hosts-on-os-x-leopard/

http://adactio.com/journal/1395