我想将我的 WP 博客迁移到 ghost,永久链接具有相同的 slug (/blogWP.com/title-article
和blogGhost.com/title-article
),但我仍然有诸如 blog.com/category 之类的页面来重定向。
有什么方法可以像在 .htaccess 文件中那样在 Ghost 中进行 301 重定向?
谢谢 !
我想将我的 WP 博客迁移到 ghost,永久链接具有相同的 slug (/blogWP.com/title-article
和blogGhost.com/title-article
),但我仍然有诸如 blog.com/category 之类的页面来重定向。
有什么方法可以像在 .htaccess 文件中那样在 Ghost 中进行 301 重定向?
谢谢 !
可以直接通过 ghost 本身重定向,但您需要更改核心。虽然我不确定这是完美或正确的方式。
打开core/server/errorHandling.js
找到这一行:
error404: function (req, res, next) {
在下面添加:
res.status(301);
res.set({'Location': 'http://your-new-wordpress-blog-url'+req.url});
res.send('301','Not found');
这样,我不是显示 404,而是重定向到我的 wordpress 的新域(http://your-new-wordpress-blog-url
在示例中)
这样,www.ghost.url/not-a-valid-page
将重定向到http://your-new-wordpress-blog-url/not-a-valid-page
而不是显示 Ghost 的 404 页面。
ps:这个重定向,但我不是 100% 确定标题是正确的,如果有人能澄清,我会很感激。
抱歉,目前无法使用 Ghost 进行重定向。
进行重定向的最佳方法是使用代理服务器(推荐)并在那里进行重定向。对于 Apache,您可以使用.htaccess
文件,而 nginx 提供HttpRewriteModule。
我的 ghost blog 是一个/blog/
运行 NGINX 的子目录。我需要将旧的 wordpress 网址/blog/category/post-title重定向到/blog/post-title
除了/blog/ghost/..
, /blog/tag/..
, /blog/author/..
, /blog/post-title/amp/
。
所以我提出了重写规则:
rewrite ^/blog/(?:(?!ghost|tag|author).).*/(?:(?!amp))(.+)$ /blog/$1 permanent;