我取消了 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>