我希望为我的用户提供测试新功能的测试版访问权限。我使用 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
指令。尽量将其放在主配置文件中