当前位置: 首页 > 知识库问答 >
问题:

Wordpress多站点强制HTTPS和WWW用于域,仅HTTPS用于子域HTACESS

赏高格
2023-03-14

我目前有一个由两个网站组成的wordpress多站点设置,一个是子域。让我们调用主域 www.domain.com 和子域 test.domain.com

  • 对于这两个域,我需要强制使用https
  • 对于主域,我还需要同时实施ssl和www,以便它成为https://www.domain.com

我遇到的主要问题是,当我进入https://test.domain.com时,这将正确工作,但当我在http://test.domain.com键入时,我被重定向到https://www.domain.com,这是主网站,而不是子域网站。

<IfModule mod_rewrite.c>
RewriteEngine On

# for subdomains
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^(test\.domain\.co)$ [NC]
RewriteRule ^.*$ https://%1%{REQUEST_URI} [R,L]

# for main domains
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} ^domain\.co$ [NC]
RewriteRule ^.*$ https://www.domain.co%{REQUEST_URI} [R,L]


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]
</IfModule>

共有2个答案

苏雅珺
2023-03-14

好吧,所以我找到了为什么我总是重定向到https版本的原因。我最初将apache服务器设置为使用虚拟主机。在该文件中,所有http请求或端口80例如

我通过删除重定向并让.htaccess文件管理重定向来解决这个问题。现在效果很好。

濮阳和泰
2023-03-14

对于子域,您可以使用以下规则:

# for subdomains
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^(test\.example\.com)$ [NC]
RewriteRule ^.*$ https://%1%{REQUEST_URI} [R,L]
 类似资料:
  • 我一直在尝试为我的网站配置这个,但是做不到。 我以前有一个cond。htaccess对主域名强制www,对子域什么都不用,但是自从我得到了一个SSL,我遇到了一些问题。 这是一个通配符SSL。 我需要的是在主域上强制HTTPS://WWW,在子域上强制HTTPS://。 即:http://www.domain.com - 有什么规定吗?谢谢! 编辑 现在我用乔恩贴的 问题是,当我在主域上键入 HT

  • 我遵循这个准则 重新启动发动机 重写基/ 重写规则^index.php$-[L] 重写规则^([_0-9a-zA-Z-]/)?文件/(.)wp包括/ms files.php?文件=$2[L] 重写规则^([_0-9a-zA-Z-]/)?wp admin$$1wp admin/[R=301,L] 重写Cond%{REQUEST_FILENAME}-f[OR] RewriteCond%{REQUEST

  • 我有几个站点作为子域,主域名为site1。通用域名格式。我的主域有一个用于。我的子域可以被引用为,到。我的主域正确使用证书,并在所有页面上强制使用https,我的子域仅在管理页面上使用https,我使用的是wordpress CMS,或者如果我引用我的站点作为,。我想让我的子域以。目前我的域名作为或 PS:我无法访问vhost文件。这是我所有域名的. htaccess代码:

  • 当我试图发布我的联系表单时,我收到一个控制台错误,即我的Lambda、SE、API网关、Cloudfront备用源配置不能从子域“www.example.com”运行,而它可以从“example.com”运行。我如何允许联系表单避免多个(子)域上的任何问题?控制台中的错误告诉我以下信息: “跨源请求被阻止:同一源策略不允许读取https://example.com/rest/contact.中的远

  • 问题内容: 我正在使用NodeJS 请求-简化的HTTP客户端 我似乎在使用HTTPS网站时遇到问题,但没有得到结果。 在Postman上测试了API端点(我不能共享),我只是关闭了SSL,它起作用了,我该如何使用请求插件做同样的事情? 问题答案: 只需添加以下行: 因此,您的代码如下所示:

  • 我想知道当我在example.com中键入没有https时,我必须在AWS的证书管理器端做什么才能让https工作。 我已经为我的域配置了路由53别名,以便路由到我的弹性豆茎URL。我还有一个SSL证书,用于我的域名example.com和*.domain.com,这两个证书都已成功验证,是Amazon颁发的,也在使用中。