MyBB Community Forums

Full Version: Removing the Forum- in the url for Google SEO
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi,

I want to get rid of the text "Forum-" in my urls. I'm using Google SEO and mod rewrite. I also want to get rid of the "Thread-" too. I've gone in to the url settings in mybb admin and removed the default setup leaving just the {url} in there, and I've also removed the any appearance of them in .htaccess too. The threads show up fine, it's just when I get to the posts they show invalid forum when clicked on.

I don't know what I'm doing wrong though. Here's my htaccess:
Options -MultiViews +FollowSymlinks -Indexes
  RewriteRule ^sitemap-([^./]+)\.xml$ misc.php?google_seo_sitemap=$1 [L,QSA,NC]
ErrorDocument 404 /forum/misc.php?google_seo_error=404
RewriteRule ^([^./]+)$ forumdisplay.php?google_seo_forum=$1 [L,QSA,NC]
       RewriteRule ^([^./]+)$ showthread.php?google_seo_thread=$1 [L,QSA,NC]
       RewriteRule ^([^./]+)$ announcements.php?google_seo_announcement=$1 [L,QSA,NC]
       RewriteRule ^([^./]+)$ member.php?action=profile&google_seo_user=$1 [L,QSA,NC]
       RewriteRule ^([^./]+)$ calendar.php?google_seo_calendar=$1 [L,QSA,NC]
       RewriteRule ^([^./]+)$ calendar.php?action=event&google_seo_event=$1 [L,QSA,NC]
# Google SEO workaround for search.php highlights:
# Make this rule the first rewrite rule in your .htaccess!
RewriteRule ^([^&]*)&(.*)$ http://www.mysweatyhandsandfeet.com/forum/$1?$2 [L,QSA,R=301]
######################  end custom stuff for seo plugin
#
# If mod_security is enabled, attempt to disable it.
# - Note, this will work on the majority of hosts but on
#   MediaTemple, it is known to cause random Internal Server
#   errors. For MediaTemple, please remove the block below
#
<IfModule mod_security.c>
	# Turn off mod_security filtering.
	SecFilterEngine Off

	# The below probably isn't needed, but better safe than sorry.
	SecFilterScanPOST Off
</IfModule>

#
# MyBB "search engine friendly" URL rewrites
# - Note, for these to work with MyBB please make sure you have
#   the setting enabled in the Admin CP and you have this file
#   named .htaccess
#
<IfModule mod_rewrite.c>
	RewriteEngine on
	RewriteRule ^([0-9]+)\.html$ forumdisplay.php?fid=$1 [L,QSA]
	RewriteRule ^([0-9]+)-page-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2 [L,QSA]

	RewriteRule ^([0-9]+)\.html$ showthread.php?tid=$1 [L,QSA]
	RewriteRule ^([0-9]+)-page-([0-9]+)\.html$ showthread.php?tid=$1&page=$2 [L,QSA]
	RewriteRule ^([0-9]+)-lastpost\.html$ showthread.php?tid=$1&action=lastpost [L,QSA]
	RewriteRule ^([0-9]+)-nextnewest\.html$ showthread.php?tid=$1&action=nextnewest [L,QSA]
	RewriteRule ^([0-9]+)-nextoldest\.html$ showthread.php?tid=$1&action=nextoldest [L,QSA]
	RewriteRule ^([0-9]+)-newpost\.html$ showthread.php?tid=$1&action=newpost [L,QSA]
	RewriteRule ^([0-9]+)-post-([0-9]+)\.html$ showthread.php?tid=$1&pid=$2 [L,QSA]

	RewriteRule ^([0-9]+)\.html$ showthread.php?pid=$1 [L,QSA]

	RewriteRule ^([0-9]+)\.html$ announcements.php?aid=$1 [L,QSA]

	RewriteRule ^([0-9]+)\.html$ member.php?action=profile&uid=$1 [L,QSA]

	RewriteRule ^([0-9]+)\.html$ calendar.php?calendar=$1 [L,QSA]
	RewriteRule ^([0-9]+)-year-([0-9]+)\.html$ calendar.php?action=yearview&calendar=$1&year=$2 [L,QSA]
	RewriteRule ^([0-9]+)-year-([0-9]+)-month-([0-9]+)\.html$ calendar.php?calendar=$1&year=$2&month=$3 [L,QSA]
	RewriteRule ^([0-9]+)-year-([0-9]+)-month-([0-9]+)-day-([0-9]+)\.html$ calendar.php?action=dayview&calendar=$1&year=$2&month=$3&day=$4 [L,QSA]
	RewriteRule ^([0-9]+)-week-(n?[0-9]+)\.html$ calendar.php?action=weekview&calendar=$1&week=$2 [L,QSA]

	RewriteRule ^([0-9]+)\.html$ calendar.php?action=event&eid=$1 [L,QSA]

	<IfModule mod_env.c>
		SetEnv SEO_SUPPORT 1
	</IfModule>
</IfModule>

#
# If Apache is compiled with built in mod_deflade/GZIP support
# then GZIP Javascript, CSS, HTML and XML so they're sent to
# the client faster.
#
<IfModule mod_deflate.c>
	AddOutputFilterByType DEFLATE application/javascript text/css text/html text/xml
</IfModule>

Thanks in advance for your help!
Wes
Quote:RewriteRule ^([^./]+)$ forumdisplay.php?google_seo_forum=$1 [L,QSA,NC]
RewriteRule ^([^./]+)$ showthread.php?google_seo_thread=$1 [L,QSA,NC]

The first rewrite rule matches and the second and following rewrite rules never come to pass.

The Forum- Thread- (or something similar) is required to distinguish each URL type, otherwise the .htaccess can't know whether to rewrite it to forumdisplay.php or showthread.php, and Google SEO can't know if yoursite/Something means a forum or a thread.

The scheme setting is more or less an expert setting for people who know what they're doing; if you use conflicting schemes like you did, the URLs quite simply break.