升级到PHP 5.4后出现.htaccess问题

时间:2014-06-26 09:15:31

标签: .htaccess php-5.4

在更新我的服务器以使用PHP版本5.4之后,我的网站遇到了一些困难..我已经通过了很多支持票并浏览了2天的互联网..现在我需要直接询问那些人实际上知道它。

更新php版本后,我开始在我的页面上出现500错误,结果发现我的htaccess文件中的重写规则不再有效。他们在php 5.2版本中完成,但在5.4版本中没有。

<IfModule mod_rewrite.c>

RewriteEngine On
RewriteBase /

# If the request is for a valid directory
RewriteCond %{REQUEST_FILENAME} -d [OR]
# If the request is for a valid file
RewriteCond %{REQUEST_FILENAME} -f [OR]
# If the request is for a valid link
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^ - [L]

# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} \s/+website\.php\?id=([^\s&]+) [NC]
RewriteRule ^ %1? [R=302,L]

RewriteRule ^([\w.-]+)/?$ website.php?id=$1 [L,QSA]

RewriteRule ^([\w.-]+)/([\w.-]+)/?$ website.php?id=$1&page=$2 [L,QSA]

</IfModule>

有人可以告诉我我的做法有何不同?我真的很感激。

修改

我从主持人的实时短信中得到了这份副本:

[Thu Jun 26 03:54:07 2014] [error] [client ] malformed header from script. Bad header=<br />: website.php
[Thu Jun 26 03:55:35 2014] [error] [client ] Cannot load the ionCube PHP Loader - it was built with configuration 2.2.0, whereas running engine is API220100525,NTS
[Thu Jun 26 03:55:35 2014] [error] [client ] The Zend Engine API version 220100525 which is installed, is newer.
[Thu Jun 26 03:55:35 2014] [error] [client ] Contact Zend Technologies at http://www.zend.com/ for a later version of Zend Optimizer.
[Thu Jun 26 03:55:35 2014] [error] [client ]

2 个答案:

答案 0 :(得分:1)

尝试添加此行:

zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.4.so

php.ini

答案 1 :(得分:0)

解决方案现已发现

我做出了错误的假设,认为这是由于我的重写规则。问题似乎出在HostGator。如果您在HostGator主持,这将对您有所帮助。所有这一切的原因是因为HostGator宣布将升级服务器以运行PHP 5.4作为标准而不是PHP 5.2。他们没有提到的是他们的服务器结构以及各个站点​​如何管理他们各自的PHP文件。

我发现通过更改根目录中php.ini文件的名称(使其无法供服务器使用),系统在主服务器中找到了PHP版本特定的php.ini文件目录。这让我意识到我的根目录中的php.ini文件必须完全更改,因此我创建了一个包含5.4版本的新php.ini文件。该网站没有变化,因为文件基本相同,但它使我可以再次在cPanel中使用EZConfig。

这是该怎么做:

  1. 在cPanel的PHP配置选项卡中更改PHP版本,或 将AddHandler application/x-httpd-php54 .php添加到您的 .htaccess档案。
  2. 在cPanel中打开File Manager
  3. 找到您的根文件夹(主页)并找到php.ini文件。
  4. 如果要将现有的php.ini文件保留为备份,请将其重命名为ex。 php_old.ini
  5. 创建一个名为php.ini的新文件,并插入以下链接中的内容:https://wiki.cac.washington.edu/display/webpub/php.ini+for+PHP+5.4
  6. 祝你好运。希望这也会为某人解决,所以他们不必花3天时间自己解决它。