.htaccess:如何将非www重定向到除子域以外的www

.htaccess:如何将非www重定向到除子域以外的www,.htaccess,.htaccess,我使用以下代码将example.com重定向到www.example.com: <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] </IfModule> 重新启动发动机 重写cond%{HTTP_HOST}^www\。[北卡罗来纳州] 重写规则^(.

我使用以下代码将
example.com
重定向到
www.example.com

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
</IfModule>

重新启动发动机
重写cond%{HTTP_HOST}^www\。[北卡罗来纳州]
重写规则^(.*)$http://www.%{HTTP_HOST}/$1[R=301,L]
但是,我在Wordpress multisite中设置了
www.example.com
和子域,因此我需要上述规则仅适用于
example.com
,而不适用于
site-x.example.com

某些选项:

比较通用的方法是:

RewriteCond%{HTTP\u HOST}^\w+\.\w+$

黑名单:

RewriteCond%{HTTP\u HOST}^(www | site-x)\。[NC]

或白名单:


RewriteCond%{HTTP\u HOST}^(example1 | example2)\.(com | net | co)$[NC]
这将适用于
example.com
并且仅
example.com

RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
  • 检查HTTP_主机是否从example.com开始并在此处结束。如果为false,则停止;如果为true,则继续
  • 重定向到带有前导www.com的URL

  • 没有结尾的
    $
    可以进行类似
    example.com.example.com
    的匹配。