1

不知道如何更好地描述标题。问题是:

我在工作中广泛使用虚拟主机,但有时我只是将一些文件放入 localhost/mysite

当我使用虚拟主机(即 mysite.local)时,我可以将我的第一个虚拟主机设置为“开箱即用”的方式,然后放入 mysite.local 虚拟主机块:

<VirtualHost _default_:80>
   DocumentRoot C:/UniServer/www
   ServerName localhost
   ErrorLog "logs/error.log"
   CustomLog "logs/access.log" common
</VirtualHost>

<VirtualHost 127.0.0.1>
ServerAdmin webmaster@localhost
ServerName mysite.local
DocumentRoot "C:/UniServer/www/mysite/public_html/"
SetEnv ENVIRONMENT localhost
</VirtualHost>

但如果我想使用 localhost/mysite,我必须将其更改为:

<VirtualHost localhost:80>
    DocumentRoot C:/UniServer/www
    ServerName localhost
    ErrorLog "logs/error.log"
    CustomLog "logs/access.log" common
</VirtualHost>

显然,这很痛苦,因为它包括 apache 重启。

我的 httpd.conf 设置为:

服务器名称本地主机

.htaccess 似乎并不是影响它的原因。如果有人能在这方面给我指导,我将不胜感激!

编辑:应该提到,当我想使用 mysite.local 时,我不能使用:

<VirtualHost localhost:80>

我必须使用:

<VirtualHost _default_:80>

所以它在两个方向上都被“打破”了

谢谢,

杰夫

4

2 回答 2

0

好吧,我脸上的鸡蛋 - 有点像

<VirtualHost localhost>  for localhost/mysite

<VirtualHost 127.0.0.1> for mysite.local

工作,有或没有端口,只要它们匹配(两者:80 或两者都没有)

<VirtualHost _default_>  for localhost/mysite

根本行不通,没办法,没办法 - 它只对 mysite.local 有好处

这是主机文件:127.0.0.1 localhost 127.0.0.1 mysite.local

如果有人能解释为什么“默认”的行为方式会很感兴趣

于 2012-10-06T04:25:14.270 回答
-1

Looks like you're doing this on windows. Take out the SetEnv at the bottom of your mysite.local VHost and you'll need to check 2 things:

Make sure that your hosts file or local DNS has an entry for mysite.local pointing to 127.0.0.1. The hosts file on windows is in c:\windows\system32\drivers\etc\hosts

If that doesn't make it work, make sure you're set to named virtual hosts, something like:

NameVirtualHost *:80

or

NameVirtualHost 127.0.0.1:80 
于 2012-10-06T02:12:56.593 回答