将 Wordpress 网站移至 /blog 域
Posted
技术标签:
【中文标题】将 Wordpress 网站移至 /blog 域【英文标题】:Moving Wordpress site to /blog domain 【发布时间】:2016-07-26 22:23:46 【问题描述】:我有一个客户,其 wordpress 网站位于 example.com,但是,他们希望在 example.com 上建立一个自定义网站,并将博客移至 example.com/blog
到目前为止,我已经在根目录下创建了两个文件夹
/main
/blog
在虚拟主机中,我有博客的别名
Alias /blog /var/www/public_html/blog
主站点位于 /main 文件夹中,一切似乎都运行良好。 wordpress 站点已移至 /blog 文件夹,当我转到 /blog 时,它确实加载了。
两个问题
1) 没有为 wordpress 网站加载样式表。在源代码中,它们似乎是 example.com/wp-content/... 而不是 example.com/blog/wp-content/...
2) 链接显示正确,但未到达所需位置。例如,名为服装的类别显示为 example.com/blog/category/clothing/,但单击时会重定向到 example.com
更新
在 wp-options 表中,我更新了 siteurl 和 home 值以包含 /blog 这已解决问题 1。问题 2 仍然存在。
更新
问题似乎与虚拟主机别名有关。 /blog 捕获并进入 public_html/blog 文件夹, /blog/anything 没有捕获并进入 /main 文件夹。
更新和解决方案
问题出在 wordpress 网站中的 .htaccess 上。
这是原始的.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule . /index.php [L]
</IfModule>
这是一个有效的修改
<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>
【问题讨论】:
【参考方案1】:尝试使用“WP Migrate DB”插件 - 它会创建一个数据库转储并将所有旧网址替换为新网址。
【讨论】:
这也是一个重要的步骤。谢谢。【参考方案2】:问题 1)
通过更新“siteurl”和“home”表的“wp-options”设置值以包含“/blog/”后缀解决
问题 2)
通过将wordpress .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 网站移至 /blog 域的主要内容,如果未能解决你的问题,请参考以下文章
将 WordPress 站点移至 Docker,并最终移至服务器
将 wordpress 从域迁移到另一个域 - 但 URL 仍重定向到旧域
如何将 wordpress 博客迁移到 AWS 弹性 beantalk