我想将我网站的所有网址从 http://m.domain.com 重定向到 https://www.m.domain.com 示例网址: http://m.domain.com/test 至 https://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 here 和 here 上搜索了一些资源,但没有得到预期的结果。
我尝试过的:
通过:
失败:
我想知道这里是否有人可以帮助我。
您似乎遇到了非 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”替换为您的实际域名。