首页 > 解决方案 > 可以将条件逻辑添加到 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。

这样的方法存在吗?

标签: wordpressapache.htaccessredirectmultisite

解决方案


是的,从 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>

资料来源:


推荐阅读