htaccess 文件中新行的说明: RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?

Ken*_*ata 3 .htaccess wordpress pki rewritecond cpanel

最近,我注意到 htaccess 文件中的多个位置添加了新行。

RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
Run Code Online (Sandbox Code Playgroud)

我不明白它的作用,如果可能的话,我希望澄清其目的。

下面的示例显示了它的显示方式。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Run Code Online (Sandbox Code Playgroud)

先感谢您。

MrW*_*ite 6

这并不是一个完整的答案,因为我无法具体评论如何/在哪里Ballot169适合更大的计划。不过,我可以评论“它的作用”。虽然看起来确实有点奇怪……

\n\n

一般来说,这些RewriteCond指令用于创建例外,以便在自动续订 SSL 证书时,可以不受阻碍地访问必要的验证文件。有关详细信息,请参阅我对以下 ServerFault 问题的回答:

\n\n\n\n
\n
RewriteCond %{REQUEST_URI} !^/\\.well-known/pki-validation/(?:\\ Ballot169)?\n
Run Code Online (Sandbox Code Playgroud)\n
\n\n

由于正则表达式的最后一部分(?:\\ Ballot169)?是完全可选的,并且没有尾随的字符串结尾锚点(即。$),因此检查的最后一部分Ballot169完全是多余的,可以删除!(这“看起来像”正则表达式的错误,除非它试图在代码中注入注释/可跟踪令牌?)因此,这与简单的相同:

\n\n
RewriteCond %{REQUEST_URI} !^/\\.well-known/pki-validation/\n
Run Code Online (Sandbox Code Playgroud)\n\n

换句话说,它检查 URL 路径是否不以/.well-known/pki-validation/.

\n\n

因此,这使得前面沿着相同 URL 路径检查“Comodo”的条件变得多余。

\n\n

在谷歌搜索中,这个特定的指令确实会像其他地方写的那样突然出现,例如2019 年 1 月的StackOverflow 问题

\n\n

“Ballot 169”似乎指的是:

\n\n\n