我目前正在更新一个网站,并且必须为一些不再使用的旧页面添加一些301重定向。 我的代码是;

RewriteEngine On
RewriteBase /
Redirect 301 /old-folder/old-file.html http://www.newsite.com/new-folder/

不幸的是,重定向似乎忽略了html文件部分,因此当我访问旧链接时,我将被重定向到

http://www.newsite.com/new-folder/old-file.html

在第一个孩子之后的所有内容都将被忽略,并且当我尝试使用此代码重定向更复杂的url时;

Redirect 301 /old-parent-folder/old-child-folder/old-page.html http://www.newsite.com/new-folder/new-page.html

然后,我被重定向到一个损坏的URL,例如;

http://www.newsite.comold-child-folder/old-page.html

这也不是错字,.com之后的斜杠将被完全忽略。

我希望您能在这里看到问题,htaccess似乎只是看旧结构的第一部分,而忽略其余部分,导致各种问题和奇怪的链接。

#1楼 票数:0

您不需要使用RewriteEngine OnRewriteBase /因为Redirect指令不是Rewrite。

但是,我将使用Rewrite来完成我们想做的事情。 它功能更强大,如果需要,您可以使用regex轻松控制URI。

而不是这个。

Redirect 301 /old-folder/old-file.html http://www.newsite.com/new-folder/

用这个

RewriteEngine On
RewriteRule ^old-folder/old-file.html http://www.newsite.com/new-folder/ [R=301,L]

请注意,重写中没有前置/ 这是故意的。

  ask by Alex translate from so

未解决问题?本站智能推荐:

2回复

htaccess重定向被rewriteengine忽略

我有一个htaccess问题,我认为它可能是如此简单(愚蠢?),以至于以前没有人问过。 我从使用html页面转换为php,并且在大多数情况下,以下方法有效: 尽管有两个例外,所以我假设放置: 高于IfMofule ...可以解决问题,但不成功。 除非删除其余代码,否则“重定向301”
2回复

htaccess语言条件重定向

我需要在我的htaccess中进行重定向,具体取决于url中是否存在语言代码。 Url结构应该从域开始,然后是语言代码,然后是特定页面(与任何常规站点一样) domain.com/ en / section / subsection / 如您所见, / en /是语言代码,但可能有不
1回复

如何使用htaccess根据不同条件重定向?

我似乎无法弄清楚如何使用 htaccess 正确进行重定向。 我需要像这样重定向某些页面(xxx 表示任何字符串) : website.com/fr => 好的 website.com/en => website.com/en/page-1 [R 301] website.co
2回复

htaccess重写条件重定向到根域

我只是在尝试将多个页面重定向到根域,并且不确定为什么它失败了,什么也没发生。 WP重写在相同的.htaccess中,但是如果删除它们,则没有任何变化。
1回复

如何使用条件重定向.htaccess中的URL?

我有域名https://reg.bmi.id 。 我想让任何用户在 url 重定向到https://reg.bmi.id后输入任何内容。 例子: https://reg.bmi.id/admin将被重定向到https://reg.bmi.id https://reg.bmi.id/asidj
1回复

HTAccess301随条件重定向

我有以下代码: 当我输入这个伟大的工程category/business ,但我也想,如果有人输入旧的URL,如URL被写入searchPage.php?crs_category=business重定向为category/business用301码让SEO知道这是新地址。 注意:之所以存
1回复

使用.htaccess重定向以某些条件开头的文件

经过大规模的重新设计后,我正在移动一个网站,并且许多URL结构已更改。 我已经设法使用.htaccess来对大多数重定向进行排序,但是我有很多需要重定向的页面都以/shop.php?开始,例如: /shop.php?search=as&x=0&y=0&sec=sea
1回复

.htaccess中的多个条件同时使用if和or重定向

我正在尝试设置htaccess以将请求不是“ t.domain.com”从“ domain.com”重定向到“ www.domain.com” 以下是第一部分的内容: 但是,如果请求是“ t.domain.com”,如何将其扩展为不执行重定向? 谢谢!