WordPress多站点,具有.htaccess的多个域和子域

时间:2019-02-08 06:49:27

标签: php wordpress apache .htaccess

我已经安装了WordPress多站点,并具有以下入职站点工作流程:

  1. 使用子域URL设置站点,并构建内容。例如https://aclientsite.mydomain.com/

  2. 一旦站点准备就绪,可以将站点URL更改为客户端的域名。例如https://www.aclientsite.com/

  3. 运行Interconnect.it序列化数据更新程序,以更改表的内容以说明新的URL

我遇到的问题是强制将WWW 可靠地用于最终生产URL。

我应该注意,我只能访问.htaccess,而不能访问Apache配置。

这是我的.htaccess文件的全部内容:

# Force www: from http://stackoverflow.com/a/4958847/1078583    
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# Force SSL: From http://stackoverflow.com/q/24322035/
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]

# END WordPress

这里的问题是,它也将WWW也添加到了我的子域非生产站点中。例如https://www.aclientsite.mydomain.com/

这显然会破坏非生产站点。我曾尝试将www添加到非产品站点URL配置中,但是由于某些原因WordPress不喜欢这样做。当我尝试时,它会去除www和计划。例如,如果我输入https://www.aclientsite.mydomain.com/,它将另存为://aclientsite.mydomain.com/

关于如何实现目标的任何想法?

1 个答案:

答案 0 :(得分:2)

只需在您的第一个RewriteRule之前添加一个条件:

RewriteCond %{HTTP_HOST} !mydomain.com [NC]