Apache显示备用域的默认页面

ckx4rj1h  于 2022-12-30  发布在  Apache
关注(0)|答案(1)|浏览(172)

我有两个不同的域,它们应该完全指向同一个index.php文件:

  1. diegodeoxossi.com.br
  2. 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的默认页面。有人知道如何修复它吗?

7ajki6be

7ajki6be1#

ServerName lumelivros.com

您缺少示例中的.br TLD,因此请求将永远不会与所述的VirtualHost匹配。该请求很可能被"默认" vHost容器捕获,并且甚至未处理预期的.htaccess文件。
Apache默认vhost已禁用
您不能"禁用"默认vhost。无论什么vHost被定义为 * 第一个 * 都被认为是 * 默认值 *。因此,总是有一个 * 默认值 *,即使您没有显式定义一个。
但是,正如评论中所提到的,如果您希望两个域为同一站点提供服务(并且响应由应用程序确定),则应该只有一个vHost容器为两个域提供服务。
例如:

<VirtualHost *:80>
    ServerName diegodeoxossi.com.br
    ServerAlias *.diegodeoxossi.com.br
    ServerAlias lumelivros.com.br
    ServerAlias *.lumelivros.com.br
    :
  • 旁白 *
RewriteEngine on
SSLProxyEngine On

这两条指令在这里不合适。

相关问题