[英]Redirect all non-www to www for both http and https with .htaccess
[英]Redirect each domain non-www or http to www and https
我想将所有域重定向到 www 和 https。
喜欢:
http://example1.com
http://example1.com.
http://www.example1.com
http://www.example1.com.
https://example1.com
https://example1.com.
https://www.example1.com.
和
http://example2.com
http://example2.com.
http://www.example2.com
http://www.example2.com.
https://example2.com
https://example2.com.
https://www.example2.com.
这是我在 htaccess 中 domain1 的代码:
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} example1\.com [NC]
RewriteCond %{HTTP_HOST} !^(www\.)?example1\.com$ [NC]
RewriteRule ^(.*)$ https://www.example1.com/$1 [R=301,L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} example1\.com [NC]
RewriteCond %{HTTP_HOST} !^example1\.com$ [NC]
RewriteRule ^(.*)$ https://www.example1.com/$1 [R=301,L]
我检查:
1. 如果地址没有 https 并且如果包含 example1.com 并且如果不完全像 www.example1.com 或 example1.com 那么重定向到https://www.example.com
2. 如果地址有 https AND 如果包含 example1.com AND 如果不完全像 example1.com 那么重定向到https://www.example.com
首先使用 Regex 替换开始,如下所示:
(我使用 C#,只使用正则表达式和想法)。
Regex.Replace(myString, @"^(https?:\/\/(www\.)?)?");
然后替换结尾:
Regex.Replace(myString, @"\.$");
http://example2.com.
将被第一个 Regex 替换为:
https://www.example2.com.
在第二个正则表达式之后,到:
http://www.example2.com
<IfModule mod_rewrire.c>
RewriteEngine On
RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule (.*) https://www.example1.com%{REQUEST_URI} [L,R]
</IfModule>
上面的代码片段应该对你有用。 尝试一下。 如果您有任何问题,请在评论中告诉我
您可以使用:
# domain example1.com
RewriteCond %{HTTP_HOST} example1\.com [NC]
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ https://www.example1.com%{REQUEST_URI} [L,R=301]
# domain example2.com
RewriteCond %{HTTP_HOST} example2\.com [NC]
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ https://www.example2.com%{REQUEST_URI} [L,R=301]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.