【发布时间】:2010-03-30 15:31:19
【问题描述】:
我的一些客户报告说他们最近收到“500”内部服务器错误。我相信这可能是由他们使用的各种插件引起的,但每次托管公司(多个主机)都说必须替换 htaccess 文件才能解决问题。
我从我的自定义主题提交下面的代码,因为它是我触发 htaccess 写入的唯一地方。而且我想确保这里没有可能导致可能导致 500 错误的问题...
if (file_exists(ABSPATH.'/wp-admin/includes/taxonomy.php'))
{
require_once(ABSPATH.'/wp-admin/includes/taxonomy.php');
if(get_option('permalink_structure') !== "/%postname%/" || get_option('mycustomtheme_permalinks') !=="/%postname%/")
{
$mycustomtheme_permalinks = get_option('mycustomtheme_permalinks');
require_once(ABSPATH . '/wp-admin/includes/misc.php');
require_once(ABSPATH . '/wp-admin/includes/file.php');
global $wp_rewrite;
$wp_rewrite->set_permalink_structure($mycustomtheme_permalinks);
$wp_rewrite->flush_rules();
}
if(!get_cat_ID('topMenu')){wp_create_category('topMenu');}
if(!get_cat_ID('hidden')){wp_create_category('hidden');}
if(!get_cat_ID('noads')){wp_create_category('noads');}
}
if (!is_dir(ABSPATH.'wp-content/uploads')) {
mkdir(ABSPATH.'wp-content/uploads');
}
代码首先检查以确保 taxonomy.php 存在,因为 wp_create_category 调用需要它。它还会检查现有的永久链接设置,如果它们没有根据我的预期参数设置,我会执行你在那里看到的永久链接重写代码。它的这段代码,我相当肯定,创建了一个 htaccess 编辑。我想确定这是一个合理的编程,不太可能导致零星的内部服务器错误......
编辑:在一种情况下,用户在他的所有站点中都有以下插件...
- AIO 搜索引擎优化
- cbnet ping 优化器
- 联系表格 7
- 简单的隐私政策
- 执行-PHP
- 免费流量获取 SEO 插件
- 谷歌站点地图生成器
- 漂亮的链接
- 评论AZON
- 善于交际
- StatPress 已重新加载
- 网络流量天才专业版
- WP 数据库备份
【问题讨论】:
-
抱怨的客户是否使用 suexec 和 php? Suhosin 也是一个因素。
-
如果发生 500 错误,在 Apache 的日志中总是有一个非常清晰的错误消息。您真的应该与托管公司交谈,并要求他们访问错误日志。
-
@tim,我不确定,但我正在与一位客户合作,我会找到答案的。你能详细说明它们是如何导致这种情况的吗?
-
@pekka - 谢谢,很好的建议。我正在与一个在多个主机上反复出现问题的特定客户合作,我会看看我们是否可以获得日志。它是一个共享服务器。
-
@tim,我用一些额外的信息更新了这个问题。用户喜欢插件。如您在上面看到的,他在所有网站上加载了几个。