wordpress - 可以将条件逻辑添加到 htaccess 多站点以重定向到除单个域之外的 www 和 https 吗?
问题描述
我试图在我的 Wordpress Multisite 上为 htaccess 找到条件逻辑解决方案。
通过直接输入 htaccess 文件,强制将每个域重定向到 https 和 www 版本,我发现子站点的速度得到了相当大的改进。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} (?!^www\.)^(.+)$ [OR]
RewriteCond %{HTTPS} off
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
我面临的问题是主域是一个非 www 站点,并且也是重定向。我已经知道一个解决方案,我可以在其中单独输入 htaccess 文件中的每个域,但这会减慢站点的加载时间。
我要做的是执行一个条件语句来适应这一点,例如:
如果网站是 domain1.com,则不做任何更改,否则执行以下重写/重定向到 www 和 https。
这样的方法存在吗?
解决方案
是的,从 Apache 2.4 开始,您可以使用 If、ElseIF 和 Else 指令来实现您的想法。
要实现它,您将使用以下内容:
<If "req('Host') !~ /domain1.com/i">
{{ Rewrite rules you only want to apply if the domain isn't domain1.com }}
</If>
资料来源:
- Apache 博客:httpd 2.4 中的新功能:If、ElseIf 和 Else
- Apache 2.4 文档:If 指令
推荐阅读
- javascript - UTC 与 ISO 时间格式
- reactjs - 即使我正确设置了路径,React 也没有找到模块
- javascript - 电子,IPC 通信似乎无法正常工作
- python-3.x - 如何使用 telnetlib(python 3.7)从 telnet 连续打印数据
- javascript - Laravel DataTable 自定义搜索
- javascript - 如何使用文本区域中特定行的值来提交 GET 表单
- javascript - 如何在 React 中单击按钮时访问另一个组件的方法?
- c++ - 如何检查C中随机数列表中的元素
- angular - Angular 8:不是一个函数,如何修复
- ksqldb - KSQL:尝试从流中选择 * 时出现杰克逊错误