0

自从搬到新服务器后,我的重写规则出现了一些问题。我们之前的服务器是 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?????????????????

谢谢你的帮助

4

1 回答 1

0

好吧,从我的角度来看,当然,您的“问题”是由以下原因引起的:

  • (更新)新版本 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。

注意:这种问题和行为对于注册全局变量也是/是正常的,但是从 php 5.4.0 开始,该功能已完全删除,并且在相当旧的脚本中使用了这种“选项”。

于 2013-09-02T22:42:33.267 回答