.htaccess htaccess:将整个子文件夹重定向到根目录

8aqjt8rx  于 2022-11-16  发布在  其他
关注(0)|答案(2)|浏览(178)

我的网站使用Wordpress作为CMS,它已经安装在一个子文件夹中,但我设置它显示在根域上。基本上,example.com显示example.com/wordpress的内容。
旧的(静态)网站也在一个子文件夹中,我需要将整个子文件夹(文件夹和所有内容)重定向回根目录-例如,将example.com/oldwebsite指向example.com
我尝试了很多不同的方法,但我就是不能让它工作。

cxfofazt

cxfofazt1#

下面的解决方案很容易实现。您得到的结果是:

备注

  • 如果不使用永久链接,则可能不需要.htaccess注解;我总是使用永久链接,我认为每个人都应该这样做,然后它可能不工作,如果你不编辑.htaccess(我不确定)
  • 如果你不知道你在做什么,并且你害怕把事情搞砸,在你开始之前tar/zip wordpress文件夹
  • 您可能希望在开始之前使用backwpup插件创建数据库备份
  • 如果您可以选择服务器的快照,请立即创建一个

您需要什么来让这个工作:

  • 如果你想要永久链接,先让它工作;这将创建或需要.htaccess文件
  • 将/wp/index. php复制到/index.php,从而复制到站点的根目录
  • 如果您有.htaccess,也将其复制到根目录
  • 如果根目录中已经有一个.htaccess,则需要以某种方式将它们组合起来;我现在假设情况并非如此

编辑/index. php

  • 添加或编辑以下行,这可能是该文件的最后一行
  • 你需要添加子目录到你的wordpress安装路径
require('./wp/wp-blog-header.php');

编辑/.htaccess

  • 将以下代码添加到.htaccess的末尾或创建新的.htaccess
  • 用你安装wordpress的目录名替换/wp/
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
</IfModule>
# END WordPress

WordPress设置

重新命名wordpress目录

  • 如果你重命名wordpress文件夹,做这在这网站管理第一
  • 这将更新数据库值
  • 更新后,管理员将不再工作
  • 然后在终端或ftp客户端中重命名目录名
  • 然后检查所有.htaccess和index.php文件的旧名称,并用新名称替换旧名称
0s7z1bwu

0s7z1bwu2#

这是我最近从子目录(/wordpress)移动到根目录(/)的一个案例研究。
你可以通过阅读这篇文章得到一些有趣的提示,或者更好的是,以象征性的成本将移动分配给我们,保存所有的拔头发:)

**第1步:**该站点位于Cpanel上,因此我对该站点进行了完整备份,以避免出现问题时发生重大灾难(您知道墨菲定律,对吧?)。
**第2步:**我升级了当前的博客(在/wordpress)到最新版本,这样数据库结构将是最新的。
**步骤3:**我将根目录中的所有文件下载到本地文件夹,以便在需要时替换被覆盖的文件。
**第4步:**然后我上传了一个完整的博客软件到根目录(public_html文件夹,因为这是一个cpanel网站)。如果有任何特殊的插件使用,你应该从以前的位置下载软件,然后上传到新的位置,这样插件文件也会上传。
**第5步:**我上传了wp-config.php文件到根目录,这样WordPress就可以引用同一个数据库。
步骤6:我通过PHPmyadmin访问数据库并打开wp_options表。通过替换http://www.domain.com/wordpress将site_url和home选项的值更新为http://www.domain.com
**第7步:**现在我通过根URL访问博客,它打开得很好。但是我注意到这些帖子仍然链接到www.domain.com/wordpress/postname/id。
**第8步:**我访问了管理控制台并重新创建了Permalinks,以便更新所有帖子URL。

现在整个博客都运行良好,没有任何问题。
最后,我需要确保Google和其他搜索引擎将旧的索引/wordpress/post URL重定向到新的。为此,我编辑了根目录下的.htaccess文件。
在#开始WORDPRESS部分之前插入了以下代码(如果您不将此代码保留在WORDPRESS部分之外,当您更新Permalinks或执行任何其他与.htaccess文件有关的操作时,Wordpress将删除此代码)。
重新写入时的重新写入引擎重新写入基础/重新写入规则^wordpress(/.*)?$1 [L,R=301]
这有效地创建了一个永久的重定向,将所有带有/wordpress/something名称的文件重定向到/something名称。

相关问题