我为运行 apache 的新项目购买了一个 VPS。
在它上面,我在同一个域上有 2 个网站。
第一个是 Ruby on Rails /var/www/html
第二个是 Wordpress /var/www/blog
我希望 Wordpress 像 ruby (/blog) 的子目录一样。
Ruby on Rails 网站有效,但如果我去 /blog 它只是说我正在寻找的页面不可用(使用 RoR 404 模板)
RoR 配置:
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/public
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/certificate/apache-certificate.crt
SSLCertificateKeyFile /etc/apache2/certificate/apache.key
</VirtualHost>
Wordpress 的配置文件:
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/blog
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/certificate/apache-certificate.crt
SSLCertificateKeyFile /etc/apache2/certificate/apache.key
Alias /blog /var/www/blog
</VirtualHost>
也许解决方案是 /var/www 中的 htacces 文件。你能指点我吗?谢谢 !
好吧,您实际上有 1 个网站(1 个域)。只是您在该 1 网站的子目录中有 WordPress。因此,您应该只有 1 个
<VirtualHost>
容器,而不是 2 个 - 这似乎是您在这里出错的地方。第二个
<VirtualHost>
没有被使用,应该被删除。您需要将
Alias /blog /var/www/blog
指令移动到第一个<VirtualHost>
容器中,并通过在 vHost 容器中包含以下内容来允许访问此目录:我想你一定已经有类似的东西了
/var/www/html/public
?您确实应该
ServerName
在此 vHost 容器中包含一个指令,否则,这只是通过首先定义而充当“默认值”。例如:然后在此之前定义一个“默认”vHost 容器来捕获非规范请求。