htaccess:将整个子文件夹重定向到root

时间:2012-02-06 13:26:15

标签: wordpress .htaccess redirect subdirectory

我的网站使用Wordpress作为CMS,它已经安装在子文件夹中,但我将其设置为在根域中显示。基本上, example.com 会显示 example.com/wordpress 的内容。

旧(静态)网站也在子文件夹中,我需要将整个子文件夹(文件夹和所有内容)重定向回根目录 - 例如将 example.com/oldwebsite 指向 example.com

我尝试了很多不同的方法,但我无法让它发挥作用。

2 个答案:

答案 0 :(得分:7)

以下解决方案实施起来非常简单。你得到的是:

说明

  • 如果您不使用固定链接,则可能不需要.htaccess备注;我总是使用固定链接,我认为每个人都应该这样做,如果你不编辑.htaccess(我不确定)它可能不起作用
  • 如果您不知道自己在做什么,而且害怕搞砸了,请在开始之前使用wordpress压缩文件夹。
  • 您可能希望在开始之前使用插件backwpup创建数据库的备份
  • 如果您可以选择服务器的快照,请立即使用

你需要做些什么来实现这个目标:

  • 如果你想要永久链接,那就先行;这会创建或需要.htaccess文件
  • 将/wp/index.php复制到/index.php,以便复制到您网站的根目录
  • 如果您有.htaccess,请将其复制到根目录
  • 如果你已经在根目录中有.htaccess,你需要以某种方式将它们组合起来;我现在想,事实并非如此

编辑/index.php

  • 添加或编辑以下行,这可能是此文件的最后一行
  • 您需要将wordpress安装的子目录添加到路径

    require('./wp/wp-blog-header.php');
    

编辑/.htaccess

  • 将以下代码添加到.htaccess的末尾或创建新的.htaccess
  • 将/ wp /替换为您安装wordpress的目录名称

    # 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 admin,然后转到设置&gt;一般
  • 编辑以下两个字段
  • wordpress地址:http://www.yourdomain.test/wp
  • 网站地址:http://www.yourdomain.test/
  • wordpress地址用于指向样式表和图像的链接,站点地址是指向其他页面的链接应该到达的地方

重命名wordpress目录

  • 如果您重命名wordpress文件夹,请先在网站管理员
  • 中执行此操作
  • 这会更新数据库值
  • 更新后,管理员将不再工作
  • 然后在终端或ftp-client
  • 中重命名目录名称
  • 然后检查所有.htaccess和index.php文件中的旧名称,并用新名称替换旧名称

答案 1 :(得分:0)

这是一个案例研究,我最近从子目录(/ wordpress)移动到根目录(/)。

你可以通过阅读或更好的方式获得一些有趣的提示,以象征性的成本将这一举动分配给我们并节省所有的头发拉动:)

第1步:该网站位于Cpanel上,因此我对该网站进行了完整备份,以避免在出现问题时发生重大灾难的可能性(您知道Murphy的法律,不要吗?)。

第2步:我将当前博客(位于/ wordpress)升级到最新版本,以便数据库结构是最新的。

第3步:我将根目录中的所有文件下载到本地文件夹,以便我可以替换被覆盖的文件(如果需要)。

第4步:然后我将博客软件的完整副本上传到根目录(public_html文件夹,因为这是一个cpanel网站)。如果使用了任何特殊插件,您应该从以前的位置下载该软件,然后将其上传到新位置,以便上传插件文件。

步骤5:我在根目录中上传了wp-config.php文件,以便Wordpress引用同一个数据库。

第6步:我通过PHPmyadmin访问了数据库并打开了wp_options表。通过替换http://www.domain.com,将site_url和主页选项的值更新为http://www.domain.com/wordpress

第7步:现在我通过根URL访问了博客,并且打开正常。但是我注意到帖子仍然链接到www.domain.com/wordpress/postname/id。

第8步:我访问了管理控制台并重新创建了永久链接,以便更新所有帖子网址。

现在整个博客都没有任何问题。

最后,我需要确保Google和其他搜索引擎会将旧的索引/ wordpress / post网址重定向到新网址。为此,我编辑了根目录中的.htaccess文件。

在#BEGIN WORDPRESS部分之前插入以下代码(如果您不将此代码保留在WORDPRESS部分之外,Wordpress将在您更新永久链接时执行此操作或执行与.htaccess文件一起使用的任何其他操作。)< / p>

RewriteEngine On RewriteBase / rewriterule ^ wordpress(/.*)? 1美元[L,R = 301]

这有效地为所有文件创建了永久重定向,其中/ wordpress /某些名称为/某些名称。