通过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文件,所以我会继续研究这个,我非常感谢你的帮助!
重新编辑
进一步说,这似乎是我的.htaccess的mod_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/