我有一个在 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/
但是上面的代码似乎不起作用
为了更好地使用正则表达式,请使用比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]
试试这个:
RedirectMatch 301 ^/answer-now/ http://www.itdost.com/questions/
但是接受的答案不同,在这里也很好分享。请在原始帖子中注明 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