regex - 将每个非 www 或 http 域重定向到 www 和 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 并且如果包含 example1.com 并且如果不完全喜欢 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
推荐阅读
- javascript - 与提示功能结合使用时,switch 语句始终执行默认情况
- javascript - 使用非字母数字字符时如何使填充空格的结果具有相似的长度?
- reactjs - 无法使用 reactjs 以适当的方式设置框的内容
- javascript - Retrieve data from database (SQL) and display in graph using MVC?
- python - 我如何用 Python 写这个?
- java - Circular Array Rotation Hackerrank
- vba - 无法使用 vba 上传文本文件
- javascript - 如何在 Node.js/Javascript 中停止无限循环
- .htaccess - PHP - 语义 URL 查询字符串的问题
- assembly - How to get the machine code from Mars simulator