htaccess 301代码,且排除影响Let’s Encrypt证书

猫哥 程序代码评论字数 1339阅读4分27秒阅读模式

<IfModule mod_rewrite.c>
RewriteEngine On

# ----------------------------------------------------------------------
# 例外规则:如果请求的是Let's Encrypt的验证文件,则不执行下面的跳转规则
# ----------------------------------------------------------------------
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/ [NC]

# ----------------------------------------------------------------------
# 跳转规则:当访问的域名是 sxy.midou99.com 或者 a.midou99.com 时
# ----------------------------------------------------------------------
RewriteCond %{HTTP_HOST} ^a\.a\.com$ [OR]
RewriteCond %{HTTP_HOST} ^a\.b\.com$ [NC]

# 规则:将所有请求永久重定向到新域名,并保留原始路径和参数
RewriteRule ^(.*)$ https://c.cn/$1 [R=301,L]
</IfModule>

 

关键改动解释

 

我们在跳转规则之前,增加了一行关键代码

RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/ [NC]

  • RewriteCond: 定义一个条件。
  • %{REQUEST_URI}: 代表用户请求的URL路径部分(例如 /page.html/.well-known/acme-challenge/some-file)。
  • !: 一个否定符号,意思是 “不匹配”。
  • ^/\.well-known/acme-challenge/: 匹配以 /.well-known/acme-challenge/ 开头的路径。我们用 \ 来转义 .,确保它匹配的是一个真正的点。
  • [NC]: 表示不区分大小写。

这整行代码的含义是:“仅当请求的URL路径不是Let's Encrypt验证路径时,才继续往下执行后面的跳转规则。”

 

新的工作流程

 

部署这个新的 .htaccess 文件后:

  1. 当Let's Encrypt服务器来验证时
    • 它访问 http://旧域名/.well-known/acme-challenge/文件名
    • .htaccess 的第一条 RewriteCond 检测到路径匹配验证目录,因为 ! (否定) 的存在,条件不成立
    • 因此,后续的跳转规则被跳过
    • 服务器正常返回验证文件的内容。
    • 证书申请/续期成功!
  2. 当普通用户访问时
    • 用户访问 http://旧域名/任何其他页面.html
    • .htaccess 的第一条 RewriteCond 条件成立 (因为路径不是验证路径)。
    • 服务器继续执行后面的域名判断和跳转规则。
    • 用户被成功重定向到 https://c.cn

这样就完美地解决了您的需求,既保证了全站的无缝跳转,又不会影响SSL证书的自动续期。

继续阅读
猫哥
  • 本文由 发表于 2025-10-10 17:50:31
  • 转载请务必保留本文链接:https://www.588693.com/1491.html
安卓通过shell命令启动APP怎么操作 程序代码

安卓通过shell命令启动APP怎么操作

要启动Android应用程序,可以使用adb shell命令,语法如下:adb shell am start -n /。其中,是应用程序的包名,是应用程序的入口Activity名称。 相关问题 and...
Android build.prop简介 程序代码

Android build.prop简介

build.prop位于手机的/system/build.prop中 build.prop记录一些系统设置,是一个属性文件,相当于Windows系统的注册表。 build.prop生成: Make系统...
php程序列表程序 程序代码

php程序列表程序

记录备份一下 H5ai,就是一个文件目录列表程序,可以搭建在服务器上,可以作为下载站点,也可以当成私有云盘。h5ai是一款功能强大 php 文件目录列表程序,不需要数据库,支持在线预览文本、图片、音频...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定