html - 需要将丢失的 URL 重定向到新主机
问题描述
我正在将博客从一个站点移动到另一个站点并重新利用原始站点。我想维护指向该站点的所有现有链接,并希望保持 SEO 页面排名。
旧网址: http: //www.companyabc.com/2010/04/test.html
新网址: http: //blog.companyabc.com/2010/04/test.html
我想这样做的方法是在 www.companyabc.com 上使用自定义 404 错误页面,如下所示:
<html><meta http-equiv="REFRESH" content="0;url=http://blog.companyabc.com/%1"></html>
其中%1是原始 URI (/2010/04/test.html),但我不知道这是否可能。
另一种选择是使用 .htaccess 文件,如果找不到 URL,则该文件会重定向,但我也没有让它工作。我确定我在重写条件下做错了什么:
RewriteEngine On
RewriteCond %{REQUEST_URI} !-l
RewriteRule ^(.*)\.html$ https://blog.companyabc.com/$1.html [R=301,L]
有什么建议么?谢谢您的帮助。
解决方案
我使用以下 .htaccess 配置让它工作:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://blog.companyabc.com/$1 [R=301,L]
我从未尝试过 REQUEST_FILENAME 值,因为我错误地认为它仅适用于可以从网站下载的文件。我没有意识到它也适用于博客中的 .html 文件。
使用此解决方案,www.companyabc.com 上不存在的所有 URL 都将被重定向到 blog.companyabc.com,而不是显示 404 错误页面,这正是我正在寻找的。