我的子域不断重定向到我的主域

问题描述 投票:0回答:1

我确信必须已经多次询问过这个问题,我花了一天的时间对其进行了研究,但仍然无法解决。

我有一个域-domain.com,现在我想为其添加一个子域-test.domain.com。我创建了一个虚拟主机文件和DNS A记录-test.domain.com指向我的服务器IP。但是,每当我尝试访问test.domain.com时,它都会一直重定向到domain.com。我的Apache2虚拟主机文件配置如下

domain.com.conf

<VirtualHost *:80>

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/domain.com

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        RewriteEngine on
        RewriteCond %{SERVER_NAME} =www.domain.com [OR]
        RewriteCond %{SERVER_NAME} =domain.com
        RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<Directory "/var/www/domain.com">
    AllowOverride All
</Directory>

domain.com-ssl.conf

<IfModule mod_ssl.c>
<VirtualHost *:443>

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/domain.com

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined


ServerName domain.com
Include /etc/letsencrypt/options-ssl-apache.conf
ServerAlias www.domain.com
SSLCertificateFile /etc/letsencrypt/live/domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain.com/privkey.pem

</VirtualHost>
</IfModule>

test.domain.com.conf

<VirtualHost *:80>

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/test.domain.com

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        RewriteEngine on
        RewriteCond %{SERVER_NAME} =www.test.domain.com [OR]
        RewriteCond %{SERVER_NAME} =test.domain.com
        RewriteRule ^ http://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<Directory "/var/www/test.domain.com">
    AllowOverride All
</Directory>

我已经使用命令a2ensite启用了conf文件,并已经多次重启apache(并且拼命是我的服务器Drop),但仍然无法正常工作。我正在Ubuntu 16.04.6上运行。

任何建议都将不胜感激。预先非常感谢!

apache redirect dns subdomain virtualhost
1个回答
0
投票

一个简单的例子将遵循这些原则:

<VirtualHost *:80>
    DocumentRoot /var/www/test.example.com
    ServerName test.example.com
    ServerAlias www.test.example.com
</VirtualHost>

在此示例中,您为test.example.com以及www.test.example.com声明了一个虚拟主机。

请注意,由于此网站上的posting restrictions有效,因此我在这里使用example.com而不是domain.com。

至少在语法上,您的子域中的RewriteRule指令似乎不正确。它们可能导致重定向问题。因此,我将其删除并在以后处理重定向。从简单的配置开始,对其进行验证,然后在以后使用更多规则进行扩展。

提示:您可以使用curl

(如果您的PC上没有PC,则从服务器上的命令行使用)进行测试:curl -L --head "http://example.com"。测试主域名,然后测试http和https中的子域名。如果遇到任何问题,Curl中有一个选项可以忽略SSL / TLS错误。

查看会发生什么,并注意重定向(如果有)(状态码301/302)。

我更喜欢使用Curl进行测试,因为浏览器缓存可以对您起到欺骗作用。

© www.soinside.com 2019 - 2024. All rights reserved.