V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zby0826
V2EX  ›  程序员

https 网站的子目录,不加斜线时,怎么样可以只跳转一次即可?

  •  
  •   zby0826 ·
    zhaobaiyu · 2016-08-05 19:37:24 +08:00 · 2728 次点击
    这是一个创建于 3031 天前的主题,其中的信息可能已经有所发展或是发生改变。
    nginx 用上了 https , blog 是网站的子目录,可是在现在的配置下,我访问 http://example.com/blog 的时候,要跳转两次,先跳到 https://example.com/blog ,再跳到 https://example.com/blog/ ,再然后才返回 200 。

    怎么写可以只跳转一次就好,直接从 80 跳到 443 ,并加上斜线?

    以下是当前配置:
    server {
    listen 80 default_server;
    listen [::]:80 default_server;
    return 301 https://$host$request_uri;
    }


    server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name example.com;
    root ...;
    ...

    location /blog {
    error_page 404 /blog/404.html;
    try_files $uri $uri.html $uri/ =404;
    }
    }
    4 条回复    2016-08-06 21:14:12 +08:00
    lhbc
        1
    lhbc  
       2016-08-05 19:47:04 +08:00 via Android
    try_files $uri $uri/ /index.php?$uri =404;
    根据自己的目录、路由等情况修改即可。
    zby0826
        2
    zby0826  
    OP
       2016-08-05 21:16:01 +08:00
    @lhbc 下面有写 try_files ,只是不知道怎么把 try_files 和转 https 结合起来。你可能没看懂我问题。
    iVanilla
        3
    iVanilla  
       2016-08-05 22:01:16 +08:00
    那就把 url/写到前面试试:
    try_files $uri/ $uri $uri.html =404;
    bianjp
        4
    bianjp  
       2016-08-06 21:14:12 +08:00
    在 80 端口的 server 块里专门配置一下 location = /blog { return https://$host/blog/; } 肯定可行。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2766 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:47 · PVG 21:47 · LAX 05:47 · JFK 08:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.