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

问题描述 投票:0回答:1

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

  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]

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

apache .htaccess
1个回答
0
投票

假设它适用于第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
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.