.htaccess 301重定向无法正常工作?

时间:2015-05-08 20:36:27

标签: php apache .htaccess mod-rewrite redirect

我的根目录中有一个page1.html形式的静态页面,而根目录中有另一个页面index.php。我想要做的是将所有旧的传入链接移动到指向wordpress目录。我通过.htaccess和我从托管服务提供商帮助网站找到的index.php获得了主域名重定向(即abc.com现在正确地重定向到我的wordpress安装文件夹)。

我现在遇到的问题是,任何直接链接或索引的页面仍然会显示出来。例如,abc.com/page1.html仍然可见。我尝试使用以下.htaccess代码重定向到新网站:

redirect 301 /page1.html abc.com/index.php

上面的代码应该是正确的,因为我的index.php加载wordpress数据(用于正确工作的abc.com重定向的方法相同),但由于某种原因,重定向没有发生。

这是我的.htaccess文件的总体布局。

# BEGIN WordPress redirect
# This part is for the abc.com -> wordpress folder redirect.
# Code taken strait from my hosting provider's help tutorial.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /WordpressInstallation/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /WordpressInstallation/index.php [L]
</IfModule>

# Problem code below
# Static page redirects
redirect 301 /page1.html /index.php
redirect 301 /page2.html /index.php
.
.
.

关于我做错了什么或者如何实现我想要的结果的任何想法?

编辑:

它可能不是必需的信息,但page1.html,page2.html等文件位于根目录中,带有.htaccess文件,而wordpress安装位于根目录中名为wordpressInstallation的文件夹中。我只是想我会澄清,如果问题没有说清楚。

/
---wordpressInstallation
------Wordpress files (head.php, index.php, style.css etc.)
---page1.html
---page2.html
.
.
.
---index.php
---.htaccess
.
.
.

1 个答案:

答案 0 :(得分:2)

  1. 不要混用mod_rewrite规则和mod_alias规则。
  2. 在默认WP规则之前保留重定向规则。
  3. 使用此DocumentRoot/.htaccess wordpress目录上方一级):

    RewriteEngine On
    
    RewriteRule ^(page1|page2)\.html?$ /wordpressInstallation/ [L,NC,R=301]
    

    从Wordpress .htaccess中删除Redirect指令。