.htaccess - if 语句:主机包含(不等于)子域

.htaccess - if statement: host contains (not equals) subdomain

我的 .htaccess 中有这些语句,以匹配子域:

<If "req('Host') == 'subdomain.domain.com'"></If>
<If "req('Host') == 'subdomain.staging.domain.com'"></If>

如何编写这些语句,以便这些子域的子域也匹配:

s1.subdomain.domain.com
s1.subdomain.staging.domain.com

像这样:

<If "req('Host') contains 'subdomain.domain.com'"></If>
<If "req('Host') contains 'subdomain.staging.domain.com'"></If>

您正在查找“正则表达式”。

您上面的示例将转换为:

<If "req('Host') =~ /^(?:s1\.)?subdomain\.domain\.com$/">
<If "req('Host') =~ /^(?:s1\.)?subdomain\.staging\.domain\.com$/">

接受任何“子域”的更通用版本应该是这样的:

<If "req('Host') =~ /^(?:.+\.)*subdomain\.domain\.com$/">
<If "req('Host') =~ /^(?:.+\.)*subdomain\.staging\.domain\.com$/">