简化了原来的问题,所以这个答案是针对我最初提出的关于Apache设置的更具体的问题。
Apache variable DOCUMENT\\u ROOT和PHP variable doc\\u ROOT是否需要精确匹配?
在我的本地开发设置中,在MAMP for Windows下的httpd文件中。conf I将DocumentRoot设置为
DocumentRoot "C:/MAMP/htdocs"
而在httpd VHOST中。形态I设置
DocumentRoot "C:/MAMP/htdocs/my-dev-install"
对于一个站点来说,这似乎可以,但如何让多个站点在localhost上工作,而不必打开和关闭每个虚拟主机来在站点之间切换?
我会在找到碎片后更新此答案。
第一DocumentRoot
httpd VHOST中的定义。conf将覆盖httpd中定义的默认值。形态,
它响应任何未由定义处理的请求。这些值还为您稍后在文件中定义的任何容器提供默认值。
--(来自httpd.conf的评论)
我的hosts
文件:
127.0.0.1 example.d1
::1 example.d1
127.0.0.1 example.d2
::1 example.d2
我的
httpd-vhosts.conf
:
NameVirtualHost *:80
# ======= New - theme 1 =======
<VirtualHost *:80>
DocumentRoot "C:/MAMP/htdocs/my-dev-install-1"
ServerName example.d1
ServerAlias example.d1
# these 4 lines enable error logs ====modify the log names to make it clear which dev site the errors belong to
RewriteLogLevel 3
RewriteLog "C:/MAMP/logs/rewrite.log"
ErrorLog "C:/MAMP/logs/d1-error_log"
CustomLog "C:/MAMP/logs/d1-access_log" common
</VirtualHost>
# ======= New - theme 2 =======
<VirtualHost *:80>
DocumentRoot "C:/MAMP/htdocs/another-dev-install-2"
ServerName example.d2
ServerAlias example.d2
# these 4 lines enable error logs
RewriteLogLevel 3
RewriteLog "C:/MAMP/logs/rewrite.log"
ErrorLog "C:/MAMP/logs/d2-error_log"
CustomLog "C:/MAMP/logs/d2-access_log" common
</VirtualHost>
The
.htaccess
文件只有标准的WordPress语言(两者之间没有区别)。
部分成功--当我访问时http://example.d1
或http://example.d2
, Apache将我发送到正确的站点主页。但是,单击中的链接。d2带我回去localhost
, 它被定义为第一个网站(example.d1
).
可能是我浏览器中的302。或者,也许我需要和NameVirtualHost *
陈述