繁体   English   中英

update-php类导致500内部服务器错误

[英]update-php class causing 500 internal server error

更新-现在apache没有给出任何错误。 我也很早就看到了。 99%次它将引发错误500。请参阅此屏幕截图。 它根本没有显示任何错误。

http://imgur.com/a/vYwtA

我不知道如何解决这个问题。 有时过后它将再次开始显示

我创建了一个页面,当我们打开该页面时似乎是正常页面,但是在chrome和mozilla中它给出了错误。

      Failed to load resource: the server responded with a status of 500 (Internal Server Error) 

http://imgur.com/a/macb7
页面是http://xxxxxx.com/mobile-under-10000

并且我发现如果我将链接的名称更改为http://xxxxxxx.com/mobile并添加类,则不会出错。我无法在mobile-under-10000中添加php类,因为该类不允许-但我确实需要该名称作为其seo友好。 如果我创建这样的页面,它可以工作,但是我只能在类名中选择一个单词。 我有成千上万的链接,可以正常工作,但给500错误。

<?php
class samplelink {
    function index() {
echo 'write something';
    }
}
?>

任何解决的想法都会很棒。 我有一个选项可以强制Apache停止抛出500 error.But明智的选择? 我正在用Nginx和Apache。

请指教

我的.htaccess代码是

RewriteEngine on
RewriteCond ${LeechProtect:/home/xxxxxx/public_html:%{REMOTE_USER}:%{REMOTE_ADDR}:10} leech
RewriteRule .* http://xxxxxx.com
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^([0-9a-z_/\-]+)/$ index.php\?p=$1 [QSA]
RewriteRule ^([0-9a-z_/\-]+)$ index.php\?p=$1 [QSA]
</IfModule>


RewriteRule ^.* - [F,L]
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.xxxxx\.com$ [NC]
RewriteRule ^.*$ http://xxxxxx.com%{REQUEST_URI} [R=301,L]

如果您的Apache PHP / MySQL错误日志为空,则很有可能是由于.htaccess / httpd.conf引起的问题,因此请检查这些文件是否存在不一致之处。

并且我发现,如果我将链接的名称更改为http://way2enjoy.com/mobile并添加类,则不会出现错误

这强烈表明您.htaccess没有正确转义字符。

编辑

这些行:

 RewriteRule ^([0-9a-z_/\\-]+)/$ index.php\\?p=$1 [QSA] RewriteRule ^([0-9a-z_/\\-]+)$ index.php\\?p=$1 [QSA] 

可以重写为:

RewriteRule ^([0-9a-z_\/\-]+)/?$ index.php\?p=$1 [QSA]

您的htaccess有一些奇怪的行为,但是没有任何潜在的致命问题htaccess我。

一些要点:

  • 您在htaccess reWriteEngine On 3次,这可能会导致错误,因此可以删除两次。

我已经重新组织了您的代码,因此:

 <IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteRule ^([0-9a-z_\/\-]+)/?$ index.php\?p=$1 [QSA]

 RewriteCond ${LeechProtect:/home/xxxxxx/public_html:%{REMOTE_USER}:%{REMOTE_ADDR}:10} leech
 RewriteRule .* http://xxxxxx.com

 RewriteCond %{HTTP_HOST} ^www\.xxxxx\.com$ [NC]
 RewriteRule ^.*$ http://xxxxxx.com%{REQUEST_URI} [R=301,L]
 </IfModule>

 RewriteRule ^.* - [F,L]

如果达到,最后一行将返回一个Forbidden标头结果(403),这似乎是很费力的响应,可能是不必要的响应。

我也质疑leechProtect声明,但对它的了解不足以进一步提供建议。 但是,请使用上面的代码,然后检查您的网站每行的注释( #comment ),然后清除浏览器缓存(每次,因为浏览器缓存htaccess规则),并查看注释其中的某些请求是否导致网站不返回500错误。

祝好运。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM