使用htaccess将所有子子页面重定向到另一个子页面

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

我有一个在 Apache Server 中运行的旧站点,该站点已在 Google 中编入索引。我希望将所有这些索引链接重定向到我的新网站(因为旧页面不再存在。)

所以我希望将所有子子页面重定向到我的新根页面

我有如下页面

http://itdost.com/answer-now/Aerobics
http://itdost.com/answer-now/HTML
http://itdost.com/answer-now/Culture

我对每个都使用以下重定向代码

Redirect 301 /answer-now/Engineering http://www.itdost.com/questions/
Redirect 301 /answer-now/Food http://www.itdost.com/questions/
Redirect 301 /answer-now/ASP http://www.itdost.com/questions/

但是由于站点结构很大,我希望在一行中完成,而不是为每个重定向写一行

像下面这样的事情。

Redirect 301 /answer-now/% http://www.itdost.com/questions/

但是上面的代码似乎不起作用

apache .htaccess
3个回答
1
投票

为了更好地使用正则表达式,请使用比mod_alias更强大的mod_rewrite。

通过

httpd.conf
启用mod_rewrite和.htaccess,然后将这段代码放在你的
.htaccess
下的
DOCUMENT_ROOT
目录下:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteRule ^answer-now(/.*|)$ http://www.itdost.com/questions/? [L,NC,R=301]

1
投票

试试这个:

RedirectMatch 301 ^/answer-now/ http://www.itdost.com/questions/

0
投票

同一个人在这里提出同样的问题:https://serverfault.com/questions/487006/redirecting-all-sub-pages-to-another-subpage-using-htaccess?newreg=b825d1fee10b48cba7366e740c21b770

但是接受的答案不同,在这里也很好分享。请在原始帖子中注明 Laetitia:

RedirectMatch 301 /answer-now/.* http://www.itdost.com/questions

我要补充的是,如果您需要将多个子子

/answer-now/Food/burger
重写为
http://www.itdost.com/questions/
,则需要在末尾添加
\/.*

RedirectMatch 301 /answer-now/.*\/.* http://www.itdost.com/questions
© www.soinside.com 2019 - 2024. All rights reserved.