php - 带有 .htaccess 的 WordPress 多站点、多个域和子域
问题描述
我有一个 WordPress 多站点安装,其中包含以下用于入职站点的工作流程:
使用子域 URL 设置站点并构建内容。例如,https://aclientsite.mydomain.com/
站点准备好上线后,站点 URL 将更改为客户端的域名。例如,https://www.aclientsite.com/
运行 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]
推荐阅读
- python-3.x - Python 脚本使 pagefile.sys 的大小猛增
- c# - 如何通过代码移动 InverseKinematics 2D?Unity2D(平台)
- python - 如何使用 Django 创建一个显示两个不同查询的网页?
- python - 如何在 Python 中删除重复的推文?
- mysql - 查询以在一个查询中从另一个 id 获取结果
- android - INCORRECT_APP_CREDENTIALS 这里映射 android
- video - 使用 ffmpeg 进行 AVI 压缩,同时保持 alpha 通道,用于 Adobe Premiere
- html - 悬停在菜单中时如何修复小空间?
- reactjs - 使用子/父组件反应受控表单
- python - Pytube 错误。AttributeError:“NoneType”对象没有属性“下载”