编辑表达式引擎目录的.htaccess

时间:2016-08-19 01:04:55

标签: .htaccess expressionengine

我正在尝试将门户网站(包括登录功能)迁移到新网站。新站点是在Wordpress中设计的,所有表达式引擎文件都被放入wordpress安装之外的子目录中。

整个旧网站(正在运行并且全部基于Expression Engine构建)并将其复制到子目录中(让我们称之为#34;旧"。

然后我去了.htaccess文件 更新了/old/.htaccess,内容如下: RewriteBase / old / (它最初是RewriteBase /)

它显示它进入目录,但它显示我的索引wordpress页面(即index.php但它只是我的wordpress安装的主页,而不是我期望的登录页面。)

这是我的.htaccess文件代码(在" old"目录中,它是根目录的子目录:         RewriteEngine On         RewriteBase / assets /

    # Removes index.php from ExpressionEngine URLs
    RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
    RewriteCond %{REQUEST_URI} !/asysteme/.* [NC]
    RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]

    # Directs all EE web requests through the site index file
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php/$1 [L]

所有这一切都是将页面带到根目录的索引页面。

1 个答案:

答案 0 :(得分:0)

检查你的WordPress .htaccess没有控制权,因为它必须在它到达子文件夹htaccess文件(EE)之前通过该htaccess文件。因此,请确保此行位于 WordPress htaccess:

RewriteCond %{REQUEST_FILENAME} !-d

它排除了服务器上的物理目录被重写,并将请求传递到EE文件夹,因此EE htaccess。

您的 ExpressionEngine htaccess文件包含:

RewriteBase /assets/

不应该这样:

RewriteBase /old/

尝试以下方法:

RewriteEngine On

# Removes index.php from ExpressionEngine URLs
# RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
# RewriteCond %{REQUEST_URI} !/asysteme/.* [NC]
# RewriteRule (.*?)old/index\.php/*(.*) /$1$2 [R=301,NE,L]

# Directs all EE web requests through the site index file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /old/index.php/$1 [L]

要隔离问题/解决方案,请注释掉URL中的index.php(如果有人在URL中专门输入了index.php)。网站运行后,请重新添加。

删除重写基础以简化操作并将子文件夹添加到重写规则中。这应该可以解决问题。