我的一些客户报告他们最近收到“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编辑。我想确保这是一个很好的编程,不太可能导致零星的内部服务器错误......
编辑:在一个案例中,用户在他的所有网站中都有以下插件......
答案 0 :(得分:0)
如果wp-content不可写,mkdir调用肯定会失败,永久链接编辑也是如此 - 如果.htaccess不可写,那么它将失败并可能导致500错误(取决于Wordpress如何实现这一点)。另一个可能的问题可能是你的.htaccess更改破坏了.htaccess中其他一个插件所需的其他设置。
在任何情况下:查看Apache错误日志并记录PHP错误应该足以找到问题的实际来源。