问题描述
我正在尝试在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。
知道我在哪里做错了吗?
非常感谢! 麦克风
解决方法
这是我的一些建议。
-
设置服务器FQDN的FQDN
$ nano /etc/hosts
55.55.55.55 subdomain1.domain.com subdomain1
-
设置服务器主机名
$ nano /etc/hostname
subdomain1.domain.com
-
在apache网络服务器上启用mod_rewrite
-
在下面创建一个.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>
谢谢, 非洲人