bbpress mod_rewrite Woes
I don’t know if you’re familiar with bbpress, it’s the forum cousin of wordpress and can integrate nicely into the wordpress database to allow users to be shared across the two installs. So, on my North Carolina Genealogy site and my South Carolina Genealogy site I have bbpress forums installed. The catch is I wanted everything accessible through forums.domain.tld for each one. This worked with a simple config.php edit on the North Carolina site, but not the South Carolina Genealogy Forum. I kept getting 404 errors. So, I spent a couple hours chasing .htaccess Nothing I tried worked, I copied working files from one to the other, I looked at httpd.conf settings.
I tried copying the bbpress rewrite-rules.php output into an .htaccess file, tried putting the bbpress rules into the root directory .htaccess file… nothing… finally I noticed ONE thing that the two setups differed on.
The northcarolina site where the forums subdirectory was configured the path was /var/www/html/forum
(in httpd.conf)
on the southcarolina site it was set to be using /home/southcarolinagenealogy/www/forum …..
AHA – that’s a link – so I set it to the real path /var/www/html/forum and restarted the server and FINALLY got the nice mod-rewrite looking links working.
My next problem though was that I had created 92 or so links in the format of www.southcarolinagenealogy.org/forum/forum/name_of_county_forum… which now didn’t work, because the new links are at forums.southcarolinagenealogy.org/forum/name_of_county_forum …. so .htaccess time again.
I finally came up with this which worked.
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} !^forums\.southcarolinagenealogy\.org$ [NC]
RewriteRule ^(.*) http://forums.southcarolinagenealogy.org/$1 [QSA,L,R=301]
The idea is if the link does NOT already have the forums.southcarolinagenealogy.org address, then it will convert it to that and give a 301 redirect. After that bbpress was able to find the right place to redirect to. After reading through the URL Rewrite guide from Apache, I’m beginning to wonder what you CAN’T do with mod-rewrite.