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

Php 尝试登录cmsms时出现htaccess https重写问题,php,apache,.htaccess,redirect,mod-rewrite,Php,Apache,.htaccess,Redirect,Mod Rewrite,自从移动到新服务器后,我的重写规则出现了一些问题。我们以前的服务器是Apache2.2.13和PHP5.2.11,新的服务器是Apache2.2.25和PHP5.4.18 我确保所有流量都传输到www.和https 重定向对用户来说很好,但是当我尝试登录到cmsms时,我输入用户名和密码,然后单击登录,页面刷新,清除用户名和密码框,而不是登录到admin。如果我从htaccess文件中删除以下内容,我就可以登录 这是htaccess文件中的内容 RewriteEngine On RewriteC

自从移动到新服务器后,我的重写规则出现了一些问题。我们以前的服务器是Apache2.2.13和PHP5.2.11,新的服务器是Apache2.2.25和PHP5.4.18

我确保所有流量都传输到www.和https

重定向对用户来说很好,但是当我尝试登录到cmsms时,我输入用户名和密码,然后单击登录,页面刷新,清除用户名和密码框,而不是登录到admin。如果我从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


注意:这种问题和行为对于register globals来说也是正常的,但从php 5.4.0开始,该功能就被完全删除了,而且这种“选项”在相当旧的脚本中使用过。

因此,用户可以通过前端登录,但您不能通过后端登录(我可以从您的问题中理解),对吗,用户可以看到已创建的内容,但我无法登录到管理员区域编辑内容。@user2657534管理员的URL是什么?我的意思是,从您的示例来看,URL是否类似于admin/index.php?还是管理员/家庭?或者它是否有任何包含home或index.php的内容?至于PHP和apache服务器的版本,除非它真的使用了
register\u globals
,否则不会对代码产生任何影响,因为PHP 5我几乎看不到有人使用它,所以请检查您的PHP文件,看看它们是否使用
$\u GET
$\u POST
,如果使用的话,您基本上可以关闭它。如果我删除:重写cond%{HTTPS}=在重写规则^https://%{HTTP_HOST}%{REQUEST_URI}[L,R=301]时,我可以登录,因此规范url部分似乎没有引起任何问题。energysavingwarehouse.co.uk/admin是登录url。