我有两个不同的域,它们应该完全指向同一个index.php
文件:
diegodeoxossi.com.br
lumelivros.com.br
两者的所有DNS设置都是相同的。Apache默认vhost被禁用,两个域具有相同的vhost配置,如下所示:
1 x 1米3英寸
<VirtualHost *:80>
ServerName diegodeoxossi.com.br
ServerAlias *.diegodeoxossi.com.br
DocumentRoot /var/www/html
AllowEncodedSlashes On
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
RewriteEngine on
SSLProxyEngine On
</VirtualHost>
2 x 1米4英寸
<VirtualHost *:80>
ServerName lumelivros.com
ServerAlias *.lumelivros.com
DocumentRoot /var/www/html
AllowEncodedSlashes On
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
RewriteEngine on
SSLProxyEngine On
</VirtualHost>
它们都指向相同的根目录,并且都通过.htaccess
传递-问题是:我在.htaccess
中的最后一行是:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.* site/index.php?APPLR_friendlyURL=1 [L,QSA]
问题是:领域#1工作得很好;域名#2通过了这个规则,并且一直显示Apache的默认页面。有人知道如何修复它吗?
1条答案
按热度按时间7ajki6be1#
您缺少示例中的
.br
TLD,因此请求将永远不会与所述的VirtualHost匹配。该请求很可能被"默认" vHost容器捕获,并且甚至未处理预期的.htaccess
文件。Apache默认vhost已禁用
您不能"禁用"默认vhost。无论什么vHost被定义为 * 第一个 * 都被认为是 * 默认值 *。因此,总是有一个 * 默认值 *,即使您没有显式定义一个。
但是,正如评论中所提到的,如果您希望两个域为同一站点提供服务(并且响应由应用程序确定),则应该只有一个vHost容器为两个域提供服务。
例如:
这两条指令在这里不合适。