要实现 https://xxx.com/ 自动跳转至 https://xxx.com/new,可以在Nginx 的配置文件中添加以下重定向规则:

server {
listen 80;
listen [::]:80;
server_name xxx.com;
return 301 https://$server_name$request_uri;
} server {
listen 443 ssl;
listen [::]:443 ssl;
server_name xxx.com; ssl_certificate /path/to/ssl/cert.pem;
ssl_certificate_key /path/to/ssl/key.pem; # 添加以下重定向规则
if ($request_uri = '/') {
return 301 https://$server_name/new;
} # 其他配置项
# ...
}
# 这个配置文件包含两个 server 块,一个用于 HTTP 请求的监听,另一个用于 HTTPS 请求的监听。在第一个 server 块中,使用 return 301 指令将所有 HTTP 请求重定向至 HTTPS 协议,并保留原始请求 URI。 # 在第二个 server 块中,添加了一个 if 块,用于判断请求 URI 是否为 /。如果是,则使用 return 301 指令将请求重定向至 https://xxx.com/new,并丢弃原始请求 URI。 # 需要注意的是,if 块可能会影响 Nginx 的性能,因此应该尽量避免在生产环境中使用。如果有必要,也可以使用 map 块或 rewrite 指令来实现重定向。
# 保存修改后,重新加载 Nginx 配置文件,即可生效。

除了使用 if 块外,还可以 使用 map 块或rewrite 指令 来实现重定向。以下是两个示例:

# 1.使用 map 块
server {
listen 80;
listen [::]:80;
server_name xxx.com;
return 301 https://$server_name$request_uri;
} server {
listen 443 ssl;
listen [::]:443 ssl;
server_name xxx.com; ssl_certificate /path/to/ssl/cert.pem;
ssl_certificate_key /path/to/ssl/key.pem; # 使用 map 块实现重定向
map $request_uri $new_uri {
default $request_uri;
/ $scheme://$server_name/new;
} return 301 $new_uri; # 其他配置项
# ...
}
# 在这个示例中,使用 map 块将请求 URI 为 / 的请求重定向至 https://xxx.com/new。map 块定义了一个变量 $new_uri,它根据请求 URI 的不同取不同的值。在 return 301 指令中,将重定向目标设置为 $new_uri 变量即可。
# ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- # 2.使用 rewrite 指令
server {
listen 80;
listen [::]:80;
server_name xxx.com;
return 301 https://$server_name$request_uri;
} server {
listen 443 ssl;
listen [::]:443 ssl;
server_name xxx.com; ssl_certificate /path/to/ssl/cert.pem;
ssl_certificate_key /path/to/ssl/key.pem; # 使用 rewrite 指令实现重定向
if ($request_uri = '/') {
rewrite ^ https://$server_name/new permanent;
} # 其他配置项
# ...
}
# 在这个示例中,使用 rewrite 指令将请求 URI 为 / 的请求重定向至 https://xxx.com/new。rewrite 指令将重定向规则设置为 ^,表示匹配 URI 起始位置。permanent 参数表示使用 301 永久重定向。 # 需要注意的是,使用 map 块或 rewrite 指令实现重定向可能比 if 块更高效,因为它们可以在 Nginx 的内部处理阶段完成。但是,它们可能比 if 块更难理解和维护,因此应该根据实际情况选择最适合的方法。
# 保存修改后,重新加载 Nginx 配置文件,即可生效。

nginx 访问域名跳转至域名后接目录的更多相关文章

  1. apache服务器主域名跳转www域名

    为集中网站权重,有时候我们需要把www域名跳转到主域名,或者主域名跳转到www域名. apache服务器如何实现主域名跳转www域名: 打开网站根目录下.htaccess文件,没有的话新建一个上传至网 ...

  2. http方式nginx 访问不带www的域名301重定向跳转到www的域名帮助seo集中权重

    比如我需要吧gucanhui.com重定向301跳转到www.gucanhui.com 需要在nginx的con发文件中加入一段 server { listen ; server_name gucan ...

  3. 筛选nginx访问日志文件中的域名

    head  -n 500 1.log |awk  '{print $11}' > 1.txt     查看1.log日志文件前500行记录并打印出第11列也就是域名的那一列,并输出到1.txt文 ...

  4. Nginx采用yum安装方式及安装后的目录

    第一次写博客就不讲究格式了,纯文字了吧 开始 第一步先执行 rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release- ...

  5. Nginx 配置 HTTP 跳转 HTTPS-Linux运维日志

    本文介绍 Nginx 访问 HTTP 跳转 HTTPS 的 4 种配置方式. rewrite Nginx rewrite 有四种 flag: break:在一个请求处理过程中将原来的 url 改写之后 ...

  6. 使用宝塔面板 配置nginx 访问ftp服务器下面的图片

    如果 你在服务器上 运行war项目 可以在tomcat 配置访问的: tomcat 也贴出来吧! 一.tomca配置访问,需要更改配置文件server.xml ,如果找不到,自己好好找一下  一般在 ...

  7. nginx域名跳转技巧

    1.地址重写:访问server_name的时候跳转到http://www.cnblogs.com/qinyujie/ 修改nginx配置文件.加入到server{...}字段或者location字段里 ...

  8. centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 访问控制 apache rewrite 配置开机启动apache tcpdump 第二十节课

    centos    LAMP第二部分apache配置  下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转  配置apache的访问日志  配置静态文件缓存  配置防盗链 ...

  9. Nginx实现ssl一级、二级域名证书部署并用https访问代理转发服务器

    1.  规划 域名 解析IP Nginx代理 htpps://www.devcult.com 47.88.10.155   htpps://auto.devcult.com 47.88.10.155 ...

  10. nginx 域名跳转 Nginx跳转自动到带www域名规则配置、nginx多域名向主域名跳转

    nginx 域名跳转 Nginx跳转自动到www域名规则配置,如果设置使 mgcrazy.com域名在用户访问的时候自动跳转到 www.mgcrazy.com呢?在网上找了好多资料都没有一个完整能解决 ...

随机推荐

  1. [.Net]Framwork WebAPI添加接口请求监控

    思路: 通过重写 ActionFilterAttribute 拦截Action的请求及返回信息,实现对接口请求的监听. 最终效果如下: 全局启用需配置如下: 局部启用需配置如下: 源码如下: 1 // ...

  2. redis linux源码安装

    1.官网下载安装包 2.解压 3.确认GCC环境 4.make 5.修改conf配置文件守护进程daemonize yes和默认密码requirepass password 5.启动 安装目录src/ ...

  3. mysql5.7_win64位安装

    1.下载MySQL压缩包解压缩 2.更改my.ini配置文件 [mysqld] #设置3306端口号 port=3306 #设置MySQL的安装目录 basedir=F:\\JavaSoftware\ ...

  4. CentOS7更改阿里源

    阿里云yum源:1)备份当前yum源防止出现意外还可以还原回来cd /etc/yum.repos.d/cp /CentOS-Base.repo /CentOS-Base-repo.bak2)使用wge ...

  5. 讨论django并发能力及提供并发解决方案

    django 的并发能力真的是令人担忧,这里就使用 nginx + uwsgi 提供高并发 nginx 的并发能力超高,单台并发能力过万(这个也不是绝对),在纯静态的 web 服务中更是突出其优越的地 ...

  6. codec

    1.codec究竟是什么 音频解码芯片:Audio codec,又叫声卡:本质就是ADC和DAC 2.codec的作用 在移动设备中,codec的作用可以归结为4种,分别如下: playback:对P ...

  7. jmeter设置中文

    jmeter.properties #language=enlanguage=zh_CN

  8. ZIP64压缩扩展的兼容性问题

    一.ZIP压缩的两种规范 zip64 格式是标准 zip 格式的扩展,实际上消除了 zip 存档中文件大小和数量的限制. 每种格式允许的最大值总结如下: Standard Format Zip64 F ...

  9. ByteHouse MaterializedMySQL 增强优化

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 前言 社区版 ClickHouse 推出了MaterializedMySQL数据库引擎,用于将 MySQL 中的表 ...

  10. Go 语言:通过TDD测试驱动开发学习 Mocking (模拟)的思想

    正文: 现在需要你写一个程序,从 3 开始依次向下,当到 0 时打印 「GO!」 并退出,要求每次打印从新的一行开始且打印间隔一秒的停顿. 3   2   1   Go!   我们将通过编写一个 Co ...