【问题标题】:WordPress Multisite, multiple domains and subdomains with .htaccess带有 .htaccess 的 WordPress 多站点、多个域和子域
【发布时间】:2019-02-08 06:49:27
【问题描述】:

我有一个 WordPress 多站点安装,其中包含以下用于入职站点的工作流程:

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

  2. 网站准备好上线后,网站 URL 将更改为客户的域名。例如,https://www.aclientsite.com/

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

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

我应该注意,我只能访问 .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/

有什么想法可以实现我的目标吗?

【问题讨论】:

  • 尝试在您的第一个 RewriteRule 之前再添加一个条件:RewriteCond %{HTTP_HOST} !mydomain.com [NC]
  • @DusanBajic 成功了!你应该完全把它写成答案,这样我才能接受!谢谢!

标签: php wordpress apache .htaccess


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-07
    • 2015-05-30
    • 1970-01-01
    相关资源
    最近更新 更多