SSL保护一个目录

我已经在服务器上安装了ssl,但是我只想将它用于www.domain.com/users的eaxmple的特定目录,而不是用于服务器上的任何其他事物。 www.domain.com?

你可能想要两件事。

  1. 在该目录上需要SSL:

    <Directory "/usr/local/www/path/to/directory"> SSLRequireSSL </Directory> 
  2. 通过httpredirect到达该页面的用户使用https:

     RewriteEngine on RewriteCond %{REQUEST_URI} ^/path/to/directory [NC] RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)$ https://example.com$1 [R=301,L] 

还有其他的方式来完成同样的事情。 如果这不适合您的情况,请说出来,我们可以制定出您要完成的细节。

我不知道你真的想做你想问的问题(对一个目录使用SSL,而对其他目录使用SSL) – 更常见的是希望对一个目录要求 SSL,并允许其他目录可选。

要求SSL只需创build一个<Directory> (或<Location> )块并向其添加SSLRequireSSL指令( 有关该指令的更多信息,请参阅Apache手册 )。

如果你确实想要拒绝所有其他目录的SSL,你可以在上面的解决scheme的顶部使用mod_rewrite来完成这项工作(重写https://anything-that-doesnt-match/your/secure/directoryhttp://.... ),但请注意,某些浏览器可能会忽略将https:// URL重写为http://。
实现这个mod_rewrite规则在你, Apache手册的mod_rewrite部分和你用来应对mod_rewrite的任何酒精饮料之间:-)