Virtualhost
2 個網站託管在同一個域上,1 個需要看起來像一個子文件夾 (/blog)
我為執行 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 文件。你能指點我嗎?謝謝 !
在它上面,我在同一個域上有 2 個網站。
好吧,您實際上有 1 個網站(1 個域)。只是您在該 1 網站的子目錄中有 WordPress。因此,您應該只有 1 個
<VirtualHost>
容器,而不是 2 個 - 這似乎是您在這裡出錯的地方。第二個
<VirtualHost>
沒有被使用,應該被刪除。您需要將
Alias /blog /var/www/blog
指令移動到第一個<VirtualHost>
容器中,並通過在 vHost 容器中包含以下內容來允許訪問此目錄:# WordPress <Directory /var/www/blog> # Permit access to this area Require all granted # Allow per-directory overrides if want to use WP htaccess file AllowOverride All </Directory>
我想你一定已經有類似的東西了
/var/www/html/public
?您確實應該
ServerName
在此 vHost 容器中包含一個指令,否則,這只是通過首先定義而充當“預設值”。例如:# Declare the hostname that this vHost defines ServerName example.com
然後在此之前定義一個“預設”vHost 容器來擷取非規範請求。