.htaccess 301 Redirect All interal pages to a new domains internal page via htaccess

ftf50wuq  于 2023-05-07  发布在  其他
关注(0)|答案(1)|浏览(128)

我希望通过htaccess文件301重定向旧URL的所有内部页面到新URL的单一目的地。
就像我正在寻找重定向http://www.advancedbuildings.org/main_t_lighting_e_dimmable_ballasts.htm和所有其他内部页面到https://teamemergencyplumber.com/advancedbuildings-org/
我现在正在使用这个代码

RewriteEngine On

# Redirect main domain
RewriteCond %{HTTP_HOST} ^(www\.)?advancedbuildings\.org$ [NC]
RewriteRule ^$ https://teamemergencyplumber.com/advancedbuildings-org/ [L,R=301,NE]

# Redirect internal pages
RewriteCond %{HTTP_HOST} ^(www\.)?advancedbuildings\.org$ [NC]
RewriteRule ^(.*)$ https://teamemergencyplumber.com/advancedbuildings-org/$1 [L,R=301,NE,QSD]

这是一个类似https://teamemergencyplumber.com/advancedbuildings-org/main_t_lighting_e_dimmable_ballasts.htm的错误。从源URL到目的地URL添加字符串,导致404错误。首页工作正常。
你能建议一个代码来修复这个错误吗?

wkyowqbh

wkyowqbh1#

# Redirect main domain
RewriteCond %{HTTP_HOST} ^(www\.)?advancedbuildings\.org$ [NC]
RewriteRule ^$ https://teamemergencyplumber.com/advancedbuildings-org/ [L,R=301,NE]
-----HERE----^

只需删除RewriteRule * 模式 * 上的$(字符串结束锚)(以便它不仅匹配主页),并完全删除第二条规则。换句话说:

# Redirect main domain and all internal pages
RewriteCond %{HTTP_HOST} ^(www\.)?advancedbuildings\.org$ [NC]
RewriteRule ^ https://teamemergencyplumber.com/advancedbuildings-org/ [L,R=301]

(The NE标志在这里是不必要的。
这现在将 * 所有内容 * 从第一个域重定向到第二个域/URL。
您应该首先使用302(临时)重定向进行测试,以避免潜在的缓存问题。但是,您需要清除浏览器(和所有中间)缓存,因为您之前实现的错误的301(永久)重定向将被缓存!
但是,请注意,像这样的多对一重定向可能会被搜索引擎视为软404。

相关问题