Mac OS X Lion 上的虚拟主机不遵守 DocumentRoot

Mac OS X Lion 上的虚拟主机不遵守 DocumentRoot

我取消了 httpd.conf 文件中以下行的注释。

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

然后在httpd-vhosts.conf中添加以下代码

<VirtualHost *:80>
  ServerName 15ive.com
  ServerAlias *.15ive.com
  DocumentRoot "/Applications/MAMP/htdocs/15five/web"
  <Directory "/Applications/MAMP/htdocs/15five/web">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>
  SetEnv DEV 1
  SetEnv BASEDOMAIN 15ive.com
  RewriteEngine on
  RewriteCond %{REQUEST_URI} !^(/index\.php|/images|/scripts|/js|/css|/robots\.txt|/favicon\.ico|/pma15$
  RewriteRule ^(.*)$ /index.php/$1 [L]
</VirtualHost>

现在,当我在浏览器中打开 15ive.com 时,我实际上看到的是 localhost 的文档根目录,而不是我在虚拟主机文件中指定的目录。似乎 apache 没有识别它。知道我哪里出错了吗?

答案1

打开 /etc/apache2/httpd.conf 文件,然后转到包括 /private/etc/apache2/extra/httpd-vhosts.conf线。

寻找:

<IfDefine WEBSHARING_ON> ... </IfDefine>

其中包括该地区的一些内容,并删除这些行。如果您在 OSX 上使用 apache 的 GUI,您可以设置“WEBSHARING_ON”,但像我一样,您可能使用 httpd -k start。

答案2

你取消评论了吗

#Include conf/extra/httpd-vhosts.conf

在您的 Apache httpd.conf 文件中?

答案3

我会先将 Directory 指令移出,然后再移到 VirtualHost 指令之上。

<Directory "/Applications/MAMP/htdocs/15five/web">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

<VirtualHost *:80>
  ServerName 15ive.com
  ServerAlias *.15ive.com
  DocumentRoot "/Applications/MAMP/htdocs/15five/web"
  SetEnv DEV 1
  SetEnv BASEDOMAIN 15ive.com
  RewriteEngine on
  RewriteCond %{REQUEST_URI} !^(/index\.php|/images|/scripts|/js|/css|/robots\.txt|/favicon\.ico|/pma15$
  RewriteRule ^(.*)$ /index.php/$1 [L]
</VirtualHost>

相关内容