抱歉,我确信这是非常基础的,但我找不到一个可以让我提供不同服务的例子DocumentRoot
根据 url 提供不同目录的示例扩大(尽管我看到很多DocumentRoot
基于 ServerName、IP 地址等提供不同目录的示例)
这是我现在的配置:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ServerName example.com
Include /etc/letsencrypt/options-ssl-apache.conf
ServerAlias www.example.com
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
</VirtualHost>
</IfModule>
因此转到https://www.example.com/
服务/var/www/html
。很好。但现在我想要 URL 的特定扩展名(例如)https://www.example.com/wordpress
来提供完全不同的DocumentRoot
目录(例如/home/me/wordpress
)。配置 apache 以实现此目的的最佳方法是什么(而不必重复所有 SSL 配置)?
答案1
我找不到可以让我
DocumentRoot
根据 url 扩展提供不同目录的示例。
我不相信这是可能的(假设你的意思是使用实际DocumentRoot
指令)。
然而,正如评论所指出的那样,Alias
(通过mod_alias)很可能可以做你想做的事,例如:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
Alias "/wordpress" "/home/me/wordpress"
# This can potentially help with permission issues.
<Directory "/home/me/wordpress">
Require all granted
</Directory>
</VirtualHost>
</IfModule>
另一个可能的选择是使用符号链接到例如/home/me/wordpress
(例如直接在/var/www/html
as中wordpress
)。