.htaccess 将URL从以斜杠结尾的旧域重定向到不带斜杠的新域

pkmbmrz7  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(163)

我想减少重定向链目前我正在处理的直接重定向的网址从旧域结束了一个尾随斜线到新域没有尾随斜线。
我当前的设置如下所示:
olddomain.com/page 重定向到newdomain.com/page(这是正确的)
但是,如果用户输入olddomain.com/page/,它首先重定向到newdomain.com/page/,然后重定向到newdomain.com/page
我想要的是将www.example.com直接重定向olddomain.com/page/到newdomain.com/page
我的.htaccess:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTP_HOST} ^olddomain.com [NC,OR]
  RewriteCond %{HTTP_HOST} ^www.olddomain.com
  RewriteRule (.*)$ https://newdomain.com/$1 [R=301,L,NC]
</IfModule>

谢谢你,谢谢你

wvyml7n5

wvyml7n51#

RewriteRule (.*)$ https://newdomain.com/$1 [R=301,L,NC]

如果源URL可能包含也可能不包含尾部斜杠,但总是重定向到 * 不带 * 尾部斜杠的URL,则在RewriteRule * 模式 * 中使尾部斜杠可选,但 * 重要的是 * 您需要使*量词非贪婪,这样它就不会消耗尾部斜杠(因为贪婪的*量词将优先于随后的可选标记)。
例如:

RewriteRule (.*?)/?$ https://newdomain.com/$1 [R=301,L]

量词*?使它不贪婪,因此它尽可能地消耗 * 最少 *。
NC标志在这里是多余的,因为模式(.*?)/?$实际上是不区分大小写的。

相关问题