【问题标题】:CentOS 7 Apachect1 Removing a Virtual HostCentOS 7 Apachect1 移除虚拟主机
【发布时间】:2016-06-09 22:26:35
【问题描述】:

[已解决]

我有一个运行 Apachect1 的 CentOS 7 VPS,我刚刚完成了一个需要我创建多个子域的项目。现在我已经完成了,我不需要它们,所以我想回去清理一下。

我最初创建了这些文件

/etc/httpd/sites-available/site1.domain.com.conf
/etc/httpd/sites-available/site2.domain.com.conf
/etc/httpd/sites-available/site(...).domain.com.conf

/etc/httpd/sites-enabled/site1.domain.com.conf
/etc/httpd/sites-enabled/site2.domain.com.conf
/etc/httpd/sites-enabled/site(...).domain.com.conf

他们正在工作,而我认为删除这些域所要做的一切就是删除这些文件并重新启动 apache。我这样做了,但我仍然可以访问这些网站。有什么想法吗?

我运行了这些命令:

# apachectl restart
# systemctl restart named.service
# systemctl start named
# systemctl enable named
# systemct1 status httpd.service

我什至重新启动了我的服务器,但什么也没有。对不起,如果我错过了任何明显的东西,我还是 Linux 的新手。感谢您的帮助。

【问题讨论】:

    标签: linux apache centos virtualhost


    【解决方案1】:

    您可以做几件事。

    首先要验证 /etc/httpd/conf/httpd.conf 以确保虚拟主机在您的文件中是如何定义的,以及是否在那里声明。 Centos httpd config file

    如果那里没有虚拟主机。您需要确保这些文件不存在

    /etc/httpd/sites-available/site1.domain.com.conf
    /etc/httpd/sites-available/site2.domain.com.conf
    /etc/httpd/sites-available/site(...).domain.com.conf
    

    你也可以试试这个命令

    service httpd stop   (to stop service)
    service httpd start (to start service)
    

    让我知道这是否有效:)

    【讨论】:

    • 如果没有定义,/etc/httpd/conf/httpd.conf 中的行会是这样吗:IncludeOptional conf.d/*.confIncludeOptional sites-enabled/*.conf
    • 另外,我确实执行了这两个 httpd 启动和停止命令,并且该站点仍然可以访问。
    • 只是为了确保您访问每个站点 site1.domain.com site2.domain.com site3.domain.com ?每个子域都在不同的文件夹中吗?例如/var/www/html/site1 /var/www/html/site2.....
    • 是的。例如,我删除了文件/etc/httpd/sites-available/site1.domain.com.conf 文件和/etc/httpd/sites-enabled/site1.domain.com.conf。我没有删除/var/www/html/site1 中的内容。该文件夹及其所有内容仍然存在。每个子域位于不同的文件夹中。即/var/www/html/site1/var/www/html/site2/var/www/html/site3
    • 我之前删除了虚拟主机(域/子域),我不记得有这么难。
    【解决方案2】:

    已解决

    所以我想出了如何解决这个问题。我不知道为什么,但问题是,每当我访问一个不存在的子域时,我都会被重定向到 /var/www/SubdomainA/index.php

    我解决这个问题的方法是访问我的每个子域并在 .htaccess 文件中添加一个重写条件,如果子域不是指定的子域,则将其发送到主站点。

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^(www|SubdomainA)\.example\.com
    RewriteRule .* http://www.example.com%{REQUEST_URI} [R=301]
    

    希望这会在某个时候对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 2016-10-02
      • 2017-05-02
      • 2012-01-29
      • 2014-02-07
      • 2012-08-13
      • 2017-05-30
      • 2013-07-31
      • 2014-05-28
      • 2016-04-21
      相关资源
      最近更新 更多