【发布时间】:2018-05-10 04:39:38
【问题描述】:
带有 AutoSSL (Let's Encrypt) 的 CPANEL 将自动 RewriteCond 添加到 htaccess,因为 .well-known 文件夹并每 X 分钟不断更新 htaccess 文件,因此您无法删除“众所周知”的行。但是通过这种方法,他们打破了 RewriteRule 对 RewriteCond 的反向引用。
# www to non-www generic
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
上面的这个例子并不像预期的那样工作,因为 %1 引用了最后一个 RewriteCond,而不是我们用 regexp 过滤主机的第一个。
【问题讨论】:
标签: .htaccess mod-rewrite cpanel lets-encrypt