将Wordpress站点URL从子域更改为子目录

问题描述 投票:0回答:3

这是911;我需要将我创建GoDaddy WP安装的Wordpress子域URL更改为子目录URL。我不能只在我的FTP根站点文件夹中创建一个文件夹并传输WP文件吗?没有迁移插件可以工作。

我知道我应该在GoDaddy上安装WP在正确的根目录上,首先,但我不认为这很难修复。

就这样我很清楚我希望example.myrooturl.com成为myrooturl.com/example。如果可能的话,我需要最直接,最快捷的方式来做到这一点

wordpress url subdomain subdirectory
3个回答
0
投票

我不得不经常反复你所要求的。移动Wordpress网站可能很棘手,因为网站的规范URL存储在数据库中,而且许多内部链接也存储了完整的URL(而不是相对的URL)。根据我的经验,这可以在5分钟内完成,只需几步,但要做好几分钟的停机时间:

  1. 使用PHPMyAdmin执行数据库的导出(备份)并将其下载到本地计算机(使用sql格式备份)可能最简单
  2. 在一个好的文本编辑器中打开sql文件(Notepad ++在Windows上很好,在Mac上是Text-Wrangler)
  3. 在数据库中执行“查找和替换”,找到当前网址“example.myrooturl.com”的所有实例,并将其替换为新网址“myrooturl.com/example”
  4. 选择文件中的所有文本并复制到剪贴板(Ctrl + c或Cmd + c)
  5. 使用FTP程序连接到FTP服务器(FileZilla是最好的恕我直言)
  6. 在站点的根目录中创建一个名为“example”的子文件夹(其中“example”将是url的/ example部分)
  7. 导航到站点的根目录 - 可能是根目录中名为“example.myrooturl.com”的文件夹
  8. 选择该目录中的所有文件
  9. 将这些文件拖到新创建的“/ example”文件夹中
  10. 返回PHPMyAdmin并将步骤4中复制的sql语句粘贴到查询窗口中 - 这可能需要几秒到一两分钟的时间才能在textarea中显示文本
  11. 执行sql查询

如果遵循这些步骤并且没有遇到任何问题,那么您应该只需要这样做!您应该能够导航到新URL并查看该站点。

编辑

没有考虑两件事:删除子域,在CPanel中,子域被映射到我们想要使用的子文件夹;以及子文件夹中的站点将嵌套在另一个Wordpress安装中的事实。

第一项很简单,删除子域映射到文件夹并清除浏览器缓存。第二个更具挑战性,涉及编辑public_html文件夹(主站点的文件夹)根目录中的.htaccess。这是因为当您将wordpress网站嵌套在另一个安装中时,Wordpress可能不会允许流量进入嵌套网站(site.com/site),而是生成404(如果尚未存在永久链接)子文件夹名称)。这是通过如下编辑htaccess来完成的(取自here

 # BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]

# Include in the next line all folders to exclude
RewriteCond %{REQUEST_URI}  !(folder1|folder2|folder3) [NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress 

同样值得从嵌套站点删除旧的.htaccess,登录到wp-admin,访问Settings-> Permalinks页面并单击“save”以在新安装的上下文中重新生成.htaccess。

NB @ user7357089建议执行301重定向,这是一个好主意,以维护您拥有的任何SEO“果汁”以及防止断开链接。这可以通过.htaccess文件轻松完成 - 如果您有这方面的经验,请告诉我您是否需要指导


1
投票

用这段代码重写你的wp-config.php

define('SUBDOMAIN_INSTALL', false);

而不是define('SUBDOMAIN_INSTALL', true);

然后转到:

http://www.website.com/wp-admin/network/setup.php

然后:

将以下内容添加到/var/www/vhosts/website.com/中的.htaccess文件中,替换其他WordPress规则:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

而已。

使用子目录创建新站点


0
投票

在完成我在不同指南中找到的所有步骤后,我遇到了一些麻烦。搜索并将我新更改的en.domain.com替换为domain.com/en后,我的网站没有显示任何内容。在som故障排除后,我发现我必须在wp_blogs表中更改域和路径,在我将域转换为子目录切换之前,我还没有在任何指南中看到过这个。所以我想如果你像我一样挣扎,我会暗示一下;)


0
投票

当您安装多站点WordPress时,子域或子目录是重要的部分,当您尝试在WordPress上设置网络时,您将找到此选项。如果您选择了子域,则需要重新安装WordPress,因为这是一个永久性的变化,唯一的解决方案是重新安装和配置WordPress。我附上了你会发现这张照片的照片。谢谢! enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.