ssl - 使用 nginx 配置为我的服务器上的单个目录强制使用 https

标签 ssl nginx https nginx-location

我试图通过在我的 nginx 配置文件中放置重写规则来为我服务器上的单个子目录强制使用 SSL。

因此,例如,当用户访问 example.com/billing 或 example.com/billing/user 时,他们将被带到 https://example.com/billinghttps://example.com/billing/user .

我安装了 SSL 证书等。这是我的 nginx 服务器 block 中的规则:

#billing location
location /billing/ {
    if (!-e $request_filename){
        rewrite ^/billing/(.*)$ /billing/index.php?request=$1 last;
    }
}

有没有办法修改此规则以包括强制 https?

最佳答案

我希望你有两个服务器 block ,一个用于http,另一个用于http SSL 连接;在您的 http 服务器 block 中,在 /billing/ 位置 block 中添加到 https 的重定向将解决问题。

server {
 listen 80;
 location /billing/ {
   # 301 for permanent redirect
   return 301 https://$host$request_uri;
 }
}

关于ssl - 使用 nginx 配置为我的服务器上的单个目录强制使用 https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43419679/

相关文章:

java - .NET 控制台应用程序客户端和 Java RESTful 服务之间的 TLS 客户端身份验证

apache - Collabora (docker) 和 NextCloud (snap) 问题在同一台机器上的代理后面

url-rewriting - 使用 nginx 阻止直接访问 php 文件(仅重写)

linux - 访问 nginx、ubuntu 17 的文件夹 jenkins 工作区

PHP 5.5 Zend OPcache 在 Ubuntu 14.04 上编译时未运行

regex - 仅为特定页面强制使用 SSL

ssl - 将 SSL 重定向到另一个 SSL

使用标准 C 库的 C SSL 实现

c++ - 如何通过 HTTPS POST 正确发送二进制数据?

asp.net - 在 IIS Express 中为 MVC Web 应用程序强制使用端口 443 上的 SSL