运行WP多站点,客户端可以使用自己的域名。 很好的工作 – 除了客户端不使用我的名称服务器,只是有一个指向WP静态IP地址的Alogging的情况。
当客户端DNS有大量服务logging(例如Office 365)时,有时会发生这种情况,将DNS留在那里更安全。
当我控制DNS时,我可以将非WWW别名到WWW,这使WP多站点感到高兴。 当客户端刚刚使用Alogging指针时,WP多站点在传入的非WWW请求中跳转,并落在多站点的注册页面上。 它真的需要'万维网',工作正确(不幸)。
我通过在.htaccess中这样做解决每个客户:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^example\.com [NC] RewriteRule ^(.*) http://www.example.com/$1 [L,R=301] </IfModule>
迄今为止似乎工作很好。
问题:
这个方法看起来是否合理?
鉴于我所看到的问题,有没有更好的方法来处理这个问题?
如果我想使这个重写通用来处理任何传入域(只要该域不包括我的基地多站点域名!) – 有人可以告诉我如何形成条件/规则?
我喜欢硬编码的实际领域,因为这保证没有别的被触动,但我会想象一旦我有几百这些可能会变得愚蠢。
当我控制DNS时,我可以将非WWW别名到WWW,这使WP多站点感到高兴。
不太清楚这里的“别名”是什么意思,但是大概你需要实现某种规范的非WWW来WWWredirect,即使你控制了DNS?
- 这个方法看起来是否合理?
所以,这种types的redirect似乎是合理的。 创build额外的VirtualHost似乎是更多的工作。 (?)
- 鉴于我所看到的问题,有没有更好的方法来处理这个问题?
正如评论中提到的,客户可以在www.example.com
上设置A
logging,而只能从www
子域访问该站点。 但这可能是不可取的。 所以,无论哪种方式,你将不得不在你的最后解决域名规范化,这将涉及301redirect。
- 如果我想使这个重写通用来处理任何传入域(只要该域不包括我的基地多站点域名!) – 有人可以告诉我如何形成条件/规则?
在你的服务器configuration中,你可以做如下的事情来处理任何域,但是排除基本域:
RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteCond %{HTTP_HOST} !^base-domain-to-exclude\.com [NC] RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]
如果HTTP_HOST
不以www.
开头www.
然后使用www.
redirect到相同的主机 www.
前缀。
您也不需要这里的<IfModule>
包装。 您已经知道在您的服务器上启用了mod_rewrite,但即使如此,只有在您的站点打算在没有mod_rewrite的情况下“工作”时,才需要<IfModule>
包装器。
您可以为example.com
添加一个单独的虚拟example.com
,只需将客户端发送到www.example.com
。