htaccess使用https,非www和目录尾随将两个域重写为一个域

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了htaccess使用https,非www和目录尾随将两个域重写为一个域相关的知识,希望对你有一定的参考价值。

我有两个具有不同后缀的域名,我想要做的是以下内容:

  1. 将所有URL从domain2重写为domain1。
  2. 将所有www网址重写为非www网址并将其重定向到domain1
  3. 强制HTTPS网址
  4. 我希望规则也影响完整的目录尾随,例如:http://www.domain2.net/shop/将去https://domain1.com/shop/

我现在拥有的:

RewriteCond %{HTTP_HOST} ^domain2\.net$ [OR]
RewriteCond %{HTTP_HOST} ^www\.domain2\.net$ [OR]
RewriteCond %{HTTP_HOST} ^www\.domain1\.com$
RewriteRule ^/?$ "https\:\/\/domain1\.com" [R=301,L]

正如你所看到的那样,部分完成了我的需要,但我很难弄清楚如何操作整个目录尾随,有没有人知道正确的解决方案呢?

答案

假设它适用于第1,2和3项。对于第4项,您需要在重写部分中插入要重用的模式部分,如下所示:

RewriteCond %{HTTP_HOST} ^domain2\.net$ [OR]
RewriteCond %{HTTP_HOST} ^www\.domain2\.net$ [OR]
RewriteCond %{HTTP_HOST} ^www\.domain1\.com$
RewriteRule ^(.*)$ "https://domain1.com/$1" [R=301,L]
  • ^(.*)$:从任何.*开始,直到结束$“。注意.*也会匹配空字符串。
  • $1将括号内的内容替换为重写部分。
  • 例如:http://domain2.net/TATA.html - > https://domain1.com/TATA.html

以上是关于htaccess使用https,非www和目录尾随将两个域重写为一个域的主要内容,如果未能解决你的问题,请参考以下文章

使用 .htaccess 重定向 URL 而不使用尾随帖子 ID

使用htaccess从(.html到.php)和(http到https)和(非www到www)同时重定向[重复]

htaccess 重定向非 www http 和 https

通过 htaccess 将所有 http 和 https 非 www URL 重定向到 https://www.xyz.com

.htaccess:非 www 到 www(使用 https)在 Firefox 中显示 ssl_error_bad_cert_domain

Htaccess 301将规则/ HTTP重定向到HTTPS /非www到www