我正在尝试将门户网站(包括登录功能)迁移到新网站。新站点是在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]
所有这一切都是将页面带到根目录的索引页面。
答案 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)。网站运行后,请重新添加。
删除重写基础以简化操作并将子文件夹添加到重写规则中。这应该可以解决问题。