![如何使用 Apache 为同一站点提供具有不同主机名的两个版本](https://linux22.com/image/694148/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20Apache%20%E4%B8%BA%E5%90%8C%E4%B8%80%E7%AB%99%E7%82%B9%E6%8F%90%E4%BE%9B%E5%85%B7%E6%9C%89%E4%B8%8D%E5%90%8C%E4%B8%BB%E6%9C%BA%E5%90%8D%E7%9A%84%E4%B8%A4%E4%B8%AA%E7%89%88%E6%9C%AC.png)
我希望为我的用户提供测试新功能的测试版访问权限。我使用 Symfony 框架运行我的网站。
目前我有以下工作配置:
mysite.com:
<VirtualHost *:80>
DocumentRoot /var/www/html/mysite/current/web
ServerName mysite.com
ServerAlias www.mysite.com
<Directory "/var/www/html/mysite/current/web">
AllowOverride None
Order Allow,Deny
Allow from All
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
</Directory>
</VirtualHost>
我尝试使用以下配置来提供我的网站的测试版本:
<VirtualHost *:80>
DocumentRoot /var/www/html/mysite_beta/current/web
ServerName beta.mysite.com
<Directory /var/www/html/mysite_beta/current/web>
AllowOverride None
Require all granted
Allow from All
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
</Directory>
</VirtualHost>
这不起作用,Apache 仅提供第二个配置中的内容,但包含的 css 和 js 文件等资源出现 404 错误。
我不太熟悉如何配置 Apache 以使其按我预期的方式工作。
如何让我网站的 2 个不同代码库在同一个 Apache 服务器上运行?
答案1
验证 DNS 是否正确解析 mysite.com 和 beta.mysite.com。如果 Apache 没有收到标头中的 HOST 值,它将使用第一个加载的站点。
Apache 按字母顺序加载网站。
答案2
配置很好,但我看不到
NameVirtualhost *:80
指令。尽量将其放在主配置文件中