首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >301 .htaccess中的重定向正在将旧文件路径/名称附加到新url

问301 .htaccess中的重定向正在将旧文件路径/名称附加到新url
EN

Stack Overflow用户
提问于 2019-03-22 05:22:00
回答 1查看 561关注 0票数 1

我有两个URL: old-site.com和new-site.com。我在old-site.com上的根文件夹中没有文件,只有.htaccess文件。我不想再使用旧域名了。然而,我确实想把链接果汁传递给新的域名。因此,我在.htaccess文件中创建了301个重定向,并将其放在old-site.com上的根文件夹中。

为什么重定向301会附加“old-site.com/…”到new-site.com?

我的整个.htaccess看起来像这样(我跳过了几个链接来缩短它):

代码语言:javascript
复制
#Begin 301 Redirects
Redirect 301 / https://www.new-site.com/
Redirect 301 /contactus https://www.new-site/contact-us/
Redirect 301 /rentals https://www.new-site/lodging/
Redirect 301 /lift.html https://www.new-site/our-rentals/boat/
Redirect 301 /rentals.html https://www.new-site/our-rentals/
Redirect 301 /map.html https://www.new-site/contact-us/
Redirect 301 /giftshop https://www.new-site/store/gift-shop/
#End 301 Redirects

我没有任何重写。上面是我的全部代码。

以下重定向工作正常:

代码语言:javascript
复制
Redirect 301 / https://www.new-site.com/

但是,任何其他重定向都会在new-site.com上创建以下绝对路径,并显示404错误:

如果我重定向:

代码语言:javascript
复制
Redirect 301 /contactus https://www.new-site/contact-us/

它将发送到:

代码语言:javascript
复制
https://www.new-site.com/old-site.com/contactus

或

如果我重定向:

代码语言:javascript
复制
Redirect 301 /lift.html https://www.new-site/lift/

它将发送到:

代码语言:javascript
复制
https://www.new-site.com/old-site.com/lift.html

为什么重定向301会附加“old-site.com/…”到new-site.com?

谢谢,

德里克

EN

回答 1

Stack Overflow用户

发布于 2019-03-22 05:49:45

您的规则将不会执行您需要正确的操作,因为这一行Redirect 301 / https://www.new-site.com/将首先匹配任何请求,如果您将它放在最后,它也将匹配任何请求,因此,如果您希望它只与根匹配,请使用RedirectMatch,以便能够使用如下所示的正则表达式:

代码语言:javascript
复制
RedirectMatch 301 /?$ https://www.new-site.com/

这样,其余的规则将按预期工作。

说明: clear browser缓存测试

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55289451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档