gpt4 book ai didi

ruby-on-rails - 将 Wordpress 博客路由到 Rails 子文件夹 - 博客链接未更改

转载 作者:数据小太阳 更新时间:2023-10-29 07:35:51 24 4
gpt4 key购买 nike

我目前有一个 Rails 应用程序 my_app.com 和一个关联的 Wordpress 博客 blog.my_app.com。它们都在 Heroku 上独立运行(即没有 Apache 或 Nginx 脚本)

我正在尝试将博客移动到 Rails 应用程序的子文件夹 my_app.com/blog 中,而不会丢失博客现有的任何 SEO“果汁”。

我已经实现了 rack-reverse-proxy gem,博客的主页尽职尽责地显示在 http://my_app.com/blog/ 上。但是,博客中嵌入的所有链接仍然指向子域而不是应用程序的博客文件夹。

如何将博客链接配置为 http://my_app.com/blog/post1 而不是 blog.my_app.com/post1

我的 config.ru 文件:

require ::File.expand_path('../config/environment',  __FILE__)

use Rack::ReverseProxy do
reverse_proxy(/^\/blog(\/.*)$/, 'http://my-blog.herokuapp.com$1', opts = {:preserve_host => true})
end

use Rack::Deflater

run MyBlog::Application

在我的 routes.rb 中:

constraints domain: 'blog.my_app.com' do 
get '(*path)' => 'application#blog'
end

get "/blog" => redirect("/blog/")

在我的应用程序 Controller 中:

def blog
redirect_to "http://my_app.com{request.fullpath.gsub('/blog','')}", :status => :moved_permanently
end

我的 WP.htaccess 文件:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

最佳答案

听起来您需要做的就是更新 WordPress 站点中的 URL 以使用新方案。最简单的方法是在数据库中执行搜索和替换:

Search: blog.my_app.com
Replace: my_app.com/blog

但是有一个警告。 WordPress 在数据库中存储了大量的序列化数据。序列化字符串具有定义的长度,因此仅更改字符串而不更新长度会导致问题。

我喜欢用this utility更新 WordPress 中的链接。它将在数据库上执行搜索和替换,并将正确更新序列化数据。确保您有数据库备份,以防出现问题。

关于ruby-on-rails - 将 Wordpress 博客路由到 Rails 子文件夹 - 博客链接未更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29424572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com