尝试登录cmsms时出现htaccess https重写问题


htaccess https rewrite issue when trying to login to cmsms

自从迁移到新服务器后,我的重写规则出现了一些问题。我们以前的服务器是Apache 2.2.13和PHP 5.2.11,新服务器是Apache 2.2.25和PHP 5.4.18。

我正在确保所有流量都转移到www.和https

重定向对用户来说很好,但当我尝试登录cmsms时,我输入用户名和密码,然后单击登录,页面就会刷新,清除用户名和密码框,而不是登录到管理员。如果我从htaccess文件中删除以下内容,我就可以登录。

这就是htaccess文件中的内容。

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Options +FollowSymLinks
RewriteCond %{THE_REQUEST} ^.*/home
RewriteRule ^(.*)home$ https://www.energysavingwarehouse.co.uk/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ https://www.energysavingwarehouse.co.uk/$1 [R=301,L]

我在传输的php.ini中遇到了一些问题,所以用这个替换了它,也许我需要更多?:

register_globals = off
date.timezone = Europe/London
output_buffering = 1
;zend_extension = /usr/local/ioncube/ioncube.so
post_max_size = 20M
memory_limit = 200M
upload_max_filesize = 20M
max_execution_time = 120
expose_php = off
session.save_path = /tmp
magic_quotes_gpc = Off
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED?????????????????

感谢您的帮助

好吧,从我的角度来看,当然,你的"问题"是由引起的

  • (更新了)新版apache中的apache重写模块(无论如何,这对apache更新来说都是正常的),当然,如果您的脚本在以前的服务器上运行良好

至少在一开始,你可以试着去掉(或摆弄)这些线条;

RewriteRule ^(.*)home$ https://www.energysavingwarehouse.co.uk/$1 [R=301,L]
RewriteRule ^(.*)index.php$ https://www.energysavingwarehouse.co.uk/$1 [R=301,L]

假设您的php脚本支持在此之后即将进行的URI更改。如果这能奏效,让你登录(你的用户会有问题),协议是写回这些行,并为你的登录面板编写代码,以遵守新的重写规则。

无论如何,在这个apache问题解决之前,我不建议把php.ini搞砸。

注意:这种问题和行为对于寄存器全局变量来说也是正常的,但该函数从php5.4.0开始就被完全删除了,而且在相当旧的脚本中使用了这种"选项"。