bbPress + WordPress (mu or not) leads to 404 errors, but p
-
Background: Installed WPMU (at “/”) and bbPress (at “/forums/”), followed integration instructions (and tweaked to get it all working). I used my WP theme header.php and footer.php as the basis for a bbPress theme, and loaded the full WP engine into bbPress by putting this code in my config.php
// Load WordPress so we can use the same templates.
define('WP_BB', 'true');
require_once dirname(dirname(__FILE__)) . '/wp-blog-header.php';Symptoms: Pages load just fine, and all appears successful, but, upon further inspection, all bbPress pages actually return a 404 error in the HTML headers (you can see this using FireBug, or using a HEAD command to the page). NOTE: This will also happen if you create custom pages (not WP “Pages”) that load the WordPress engine – they load fine, but actually throw a 404).
Explanation: What appears to be happening here, is that the page loads fine, because it is a real page. Internally however, WP doesn’t know about this page (because it’s a bbPress, or custom page), and so it assumes it’s a request for a permalink that it can’t resolve. Thus it throws a 404.
The internal rewrite system in WP allows you to add new rewrite rules, but appears to only like dealing with “internal” or WP-specific rules. If you add in what it refers to as “non_wp_rules”, then it doesn’t actually apply them (so it still throws a 404).
The FIX! on the code that I’m running, I have put the following WordPress plugin in place to add rules appropriate for my bbPress installation:
function mbob_flush_rewrites() {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
add_action('init', 'mbob_flush_rewrites');
function mbob_add_rewrites($wp_rewrite) {
add_rewrite_rule('forums/topic', 'forums/topic.php');
add_rewrite_rule('forums/forum', 'forums/forum.php');
add_rewrite_rule('forums', 'forums/index.php');
$wp_rewrite->rules = array_merge($wp_rewrite->non_wp_rules, $wp_rewrite->rules);
}
add_action('generate_rewrite_rules', 'mbob_add_rewrites');NOTE: I have removed a lot of my bbPress installation as part of my integration, so I didn’t require any other rules to handle things like profile pages or tags – you probably will need to add them if you use those features.
Hopefully this will help someone else and prevent you from beating your head against a wall like I almost did
Thanks to sambauers for helping me out with this in #bbpress as well.
Beau
- You must be logged in to reply to this topic.