【发布时间】:2016-08-10 00:48:19
【问题描述】:
说,我有一个域http://www.example.com。我在 httpd.conf 中有这个:DocumentRoot "/Apache22/htdocs"。
我还有/Apache22/htdocs/dir1 应用程序目录,我想强制用户使用https 连接到该目录,例如,使用URL:https://www.example.com/dir1 并将任何http 请求重定向到此目录的https。
我尝试了 VirtualHost 和 Redirect 所以:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /Apache22/htdocs/
</VirtualHost>
<VirtualHost *:80>
ServerName www.example.com/dir1
DocumentRoot /Apache22/htdocs/dir1
Redirect permanent /dir1 https://www.example.com/dir1
</VirtualHost>
NameVirtualHost *:443
<VirtualHost *:443>
ServerName www.example.com/dir1
DocumentRoot /Apache22/htdocs/dir1
SSLEngine on
SSLCertificateFile conf/ssl/server.cert
SSLCertificateKeyFile conf/ssl/server.key
</VirtualHost>
但显然 Apache 忽略了 ServerName 中的任何子目录,因此 www.example.com 和 www.example.com/dir1 都是就 Apache 而言,在 VirtualHost 块中相同。
如何实现对访问 dir1 的任何 URL 的 https 重定向?
【问题讨论】: