Apache / 2.4.6CentOS虚拟主机错误404,目录和文件位于root

问题描述

我正在尝试在Apache / 2.4.6(CentOS)上设置虚拟主机(例如“ subdomain1.domain.com”)。 Web服务器没有主机名,IP地址为55.55.55.55,Apache正在侦听端口80。我有一个重定向服务处于活动状态,对“ subdomain1.domain.com:80”的请求已重定向到{{3 }}。

根据httpd.conf,DocumentRoot为“ / var / www / html”。

该网站的公共内容位于名为“ subdomain1”的目录中,该目录位于/ var / www / html目录中。该网站代码使用了一些JS / CSS,它们应该与我稍后要创建的其他虚拟主机相同,因此我将JS / CSS放在了WebSite文档根目录之外的目录“库”中(意味着,位于内部“ / var / www / html”),而我正在尝试通过“ ../libraries/”为他们提供HTML代码的访问权限。

虚拟主机配置文件是放在/etc/httpd/conf.d/目录中的“ subdomain1.conf”,这是文件

<VirtualHost *:80>
ServerName subdomain1.domain.com
DocumentRoot /var/www/html/subdomain1
</VirtualHost>

现在,使用此配置,我可以通过http://55.55.55.55/到达Subdomain1的网站。 Subdomain1的公共内容是可访问的,但是..问题是:Apache找不到所有的JS / CSS,并且它们都返回404错误。在使用Web浏览器进行调试时,我看到Apache搜索JS / CSS库的路径是“ http://55.55.55.55/libraries/”,它返回404

知道我在哪里做错了吗?

非常感谢! 麦克风

解决方法

这是我的一些建议。

  1. 设置服务器FQDN的FQDN

    $ nano /etc/hosts

    55.55.55.55 subdomain1.domain.com subdomain1

  2. 设置服务器主机名

    $ nano /etc/hostname

    subdomain1.domain.com

  3. 在apache网络服务器上启用mod_rewrite

  4. 在下面创建一个.htaccess文件,并将其保存到文件夹/var/www/html/subdomain1/

    < IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] < /IfModule>

谢谢, 非洲人