将每个非www或http的域重定向到www和https

时间:2019-06-23 07:01:46

标签: regex .htaccess

我想将每个域都重定向到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.  

致:
https://www.example1.com

AND

http://example2.com  
http://example2.com.  
http://www.example2.com  
http://www.example2.com.  
https://example2.com  
https://example2.com.  
https://www.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,并且如果包含example1.com,并且如果不完全类似于example1.com,则重定向到https://www.example.com

3 个答案:

答案 0 :(得分:0)

首先使用正则表达式替换开头,如下所示:

(我使用C#,仅使用正则表达式和主意)。

Regex.Replace(myString, @"^(https?:\/\/(www\.)?)?");

然后替换结尾:

Regex.Replace(myString, @"\.$");

例如:

Example Here

http://example2.com. 

将被第一个正则表达式替换为:

https://www.example2.com. 

在第二个正则表达式之后,执行以下操作:

http://www.example2.com

答案 1 :(得分:0)

<IfModule mod_rewrire.c>
RewriteEngine On
RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule (.*) https://www.example1.com%{REQUEST_URI} [L,R]
</IfModule>

上面的代码段应该对您有用。 尝试一下。如果您有任何问题,请在评论中告诉我

答案 2 :(得分:0)

您可以使用:

var batchNo = '25-Dec-2018 - t58 ( 341 )0';
//var batchNo='01-Dec-2018 - t57 ( 0 )0';
//var batchNo='02-May-2019 - 0012345 ( 53 )0';
//var qty='0';
var qty = 35;
//var qty='55';
//var qty='390';
var startpos = batchNo.indexOf("( ");
var endpos = batchNo.indexOf(" )");
var stockQty = +batchNo.substring(startpos + 2, endpos);
if (qty > stockQty) {
    alert("Entered quantity can not be greater than stock quantity, please try again.");
    //return false;
}
if (qty <= stockQty) {
    alert("Entered quantity ok");
    //return true;
}