【问题标题】:Apache22: how to redirect a dir to https?Apache22:如何将目录重定向到 https?
【发布时间】: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

我尝试了 VirtualHostRedirect 所以:

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.comwww.example.com/dir1 都是就 Apache 而言,在 VirtualHost 块中相同。

如何实现对访问 dir1 的任何 URL 的 https 重定向?

【问题讨论】:

    标签: apache redirect


    【解决方案1】:

    试试:

    NameVirtualHost *:80
    
    <VirtualHost *:80>
    ServerName www.example.com
    DocumentRoot /Apache22/htdocs/
    
    Redirect permanent /dir1 https://www.example.com/dir1
    </VirtualHost>
    
    NameVirtualHost *:443
    
    <VirtualHost *:443>
    ServerName www.example.com
    
    DocumentRoot /Apache22/htdocs
    
    SSLEngine on
    SSLCertificateFile conf/ssl/server.cert
    SSLCertificateKeyFile conf/ssl/server.key
    </VirtualHost>
    

    ServerName 指令采用主机名,而不是包括路径组件在内的任何内容。

    【讨论】:

      猜你喜欢
      • 2013-05-12
      • 2019-07-20
      • 1970-01-01
      • 2015-02-18
      • 1970-01-01
      • 2017-11-03
      • 2016-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多