将简单的本机 php 网站 http 重定向到带有 www 的 https 的问题

问题描述 投票:0回答:1

我想将我网站的所有网址从 http://m.domain.com 重定向到 https://www.m.domain.com 示例网址: http://m.domain.com/testhttps://www.m.domain.com/test

我的htaccess如下:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^m.domain.com
RewriteRule ^ https://www.m.domain.com%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} Off [NC]
RewriteRule ^ https://www.m.domain.com%{REQUEST_URI} [R=301,L]

RewriteRule ^test(/*)$ test.php [nc]

我在 stackoverflow herehere 上搜索了一些资源,但没有得到预期的结果。

我尝试过的:

通过:

  1. http://www.m.domain.com/test ==> https://www.m.domain.com/test
  2. https://m.domain.com/test ==> https://www.m.domain.com/test

失败:

  1. http://m.domain.com/test ==> 禁止

我想知道这里是否有人可以帮助我。

.htaccess http-redirect
1个回答
0
投票

您似乎遇到了非 www HTTP 请求的重定向问题。要使用 www 处理 HTTP 到 HTTPS 重定向,您需要确保请求是安全的 (HTTPS) 并且具有 www 子域。您遇到的“http://m.domain.com/test”导致 FORBIDDEN 错误的问题可能是由于您的规则当前设置为仅在主机为“m.domain.com/test”时才进行重定向。 com”,没有 www。

RewriteEngine On

# Redirect http://m.domain.com/test to https://www.m.domain.com/test
RewriteCond %{HTTP_HOST} ^m\.domain\.com [NC]
RewriteCond %{HTTPS} Off
RewriteRule ^ https://www.m.domain.com%{REQUEST_URI} [R=301,L]

# Redirect http://www.m.domain.com/test to https://www.m.domain.com/test
RewriteCond %{HTTP_HOST} ^www\.m\.domain\.com [NC]
RewriteCond %{HTTPS} Off
RewriteRule ^ https://www.m.domain.com%{REQUEST_URI} [R=301,L]

# Redirect https://m.domain.com/test to https://www.m.domain.com/test
RewriteCond %{HTTP_HOST} ^m\.domain\.com [NC]
RewriteCond %{HTTPS} On
RewriteRule ^ https://www.m.domain.com%{REQUEST_URI} [R=301,L]

# Handle other rules
RewriteRule ^test(/?)*$ test.php [NC]

此配置应将所有非 www HTTP 请求重定向到 www HTTPS,包括“http://m.domain.com/test”和“http://www.m.domain.com/test”。它还处理请求已经安全 (HTTPS) 的情况。确保将“m.domain.com”替换为您的实际域名。

© www.soinside.com 2019 - 2024. All rights reserved.