如何通过.htaccess将旧域名所有内页301重定向到指定单一页面?
修复.htaccess全域名301重定向到单一页面的问题
你需要修改重写规则,确保旧域名下的所有请求(不管原路径是什么)都直接跳转到指定的单一目标页面,而不是追加原路径。以下是可行的代码:
RewriteEngine On # 针对旧域名www.advancedbuildings.org的所有请求执行301重定向 RewriteCond %{HTTP_HOST} ^www\.advancedbuildings\.org$ [NC] RewriteRule ^(.*)$ https://teamemergencyplumber.com/advancedbuildings-org/ [R=301,L]
规则说明:
RewriteEngine On:启用Apache的URL重写模块,是所有重写规则的基础RewriteCond %{HTTP_HOST} ^www\.advancedbuildings\.org$ [NC]:仅匹配旧域名的请求,[NC]标记让匹配不区分大小写(兼容WWW.ADVANCEDBUILDINGS.ORG这类大写域名)RewriteRule ^(.*)$ https://teamemergencyplumber.com/advancedbuildings-org/ [R=301,L]:^(.*)$匹配旧域名下的任意路径(包括首页的空路径)- 目标URL没有追加
$1(原路径变量),所以所有请求都会直接跳转到固定页面 R=301表示永久重定向,有利于SEOL表示这是最后一条执行的规则,避免后续规则干扰
之前你的代码出现404,就是因为在目标URL末尾加了$1,把原请求的路径(比如/main_t_lighting_e_dimmable_ballasts.htm)追加到了新URL后面,导致访问了不存在的页面。现在去掉$1即可解决问题。
内容的提问来源于stack exchange,提问作者Gaurav
相关产品推荐
相关产品推荐

