我正在尝试设置一个临时服务器作为生产服务器的子域运行,但遇到了一个小问题。
我的生产服务器托管在 RackSpace 虚拟机上。我克隆了这台机器以用作我的暂存服务器。我还添加了A
记录以将子域地址指向这个新的虚拟机。
我希望能够通过键入 来访问此暂存服务器staging.domain.com
,但目前无法使用。我发现有效的解决方法是键入。请注意子域前面的www.staging.domain.com
额外内容。www
我的目录结构是这样的,在我的项目目录中,我有一个public_html
目录(显然包含可公开查看的文件)和一个目录private
(包含更多后端代码)。我希望/var/www/staging.domain.com/public_html/index.php
当我访问时,Apache 充当默认文件staging.domain.com
。
如上所述,我目前只能通过访问 来获取我想要的内容www.staging.domain.com
。当我访问 时,staging.domain.com
我会被重定向到www.staging.domain.com/staging.domain.com/public_html
。
我的 httpd.conf 设置如下(我绝对不是这个文件的配置专家):
<VirtualHost *:80>
# General Server Setup
ServerAdmin [email protected]
ServerName www.staging.domain.com
ServerAlias staging.domain.com
# Indexes + Directory Root
DirectoryIndex index.php index.html
DocumentRoot /var/www/staging.domain.com/public_html
<Directory /var/www/staging.domain.com/public_html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
我很确定我之前提到的重定向是由于我DocumentRoot
在这个文件中指定的而发生的。
此外,我尝试了许多不同的组合CNAME
和A
记录试图让它发挥作用,但我也愿意接受您可能提出的任何其他建议。
更新
我没有为我的.htaccess
文件指定任何内容,因此这不会影响任何事情。
我当前对此服务器的 DNS 记录是:
类型 名称 内容 TTL A staging.domain.com XX.XX.XX.XX(服务器IP) 300 A www.staging.domain.com XX.XX.XX.XX(服务器IP) 300
我确实没有想到可以与您分享的其他配置信息。如果您能想到任何信息,请直接询问。
答案1
事实证明,目录.htaccess
中有一个默认文件/var/www/
导致了此操作。我按照@Shane_Madden 的建议将其删除,从而解决了问题。