MyBB Community Forums

Full Version: Google SEO 1.6.8 [EOL]
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I found a problem with the plugin today. I have already reported it in another thread, but it is good to mention it here as this is sort of the official thread for the plugin.
In MyBB 1.8, there is a new capability that allows moderators to move posts from one thread to another. This functionality seems to be broken by the SEO plugin.

I did a bit of debugging, the problem is caused by the way moderation.php:2433 ("do_multimoveposts") tries to resolve "realurl". I don't know why the code to resolve actual thread URLs is repeated in various places inside "moderation.php". It could be refactored in a function and that function could possibly take care of SEO URLs as well.
If someone has already found a solution, please update the thread.

I have been able to find a hacky workaround to make it work. Diff is below.

However, a proper fix requires updates to both MyBB and the plugin. The problem is that "do_multimoveposts" in "moderation.php" does not have a hook for plugins. It needs a plugin hook and then the SEO plugin should register a callback at this hook. Until this is fixed, those who want to use the plugin can use the workaround below. Basically you will need to add 

$plugins->run_hooks("moderation_do_merge");

after "verify_post_check..." at line 2430 of moderation.php.

--- ../mybb_1805/Upload/moderation.php	2015-05-25 11:37:18.000000000 -0700
+++ moderation.php	2015-07-04 19:33:26.000000000 -0700

@@ -2427,6 +2427,8 @@
 		// Verify incoming POST request
 		verify_post_check($mybb->get_input('my_post_key'));
 
+		$plugins->run_hooks("moderation_do_merge");
+
 		// explode at # sign in a url (indicates a name reference) and reassign to the url
 		$realurl = explode("#", $mybb->get_input('threadurl'));
 		$mybb->input['threadurl'] = $realurl[0];
How do I remove the prefix url, i.e if the forum name is general the url will be mysite.com/general instead of mysite.com/Forum-general you can change it in settings but what edit do you have to do in the .htaccess file
ok this works perfectly!
(2015-07-05, 12:13 AM)babak Wrote: [ -> ]I have been able to find a hacky workaround to make it work.

The post/thread merge/move form should work if you give it the "newreply.php?tid=123" URL (right click reply button -> copy link).

That way you can use it without patching anything.

Sorry for the inconvenience.
Same issue, could you fix this please?
(2015-07-14, 07:35 PM)frostschutz Wrote: [ -> ]The post/thread merge/move form should work if you give it the "newreply.php?tid=123" URL (right click reply button -> copy link).

That way you can use it without patching anything.

Thanks Frostschutz. You are right, but we have a relatively large forum with about 10 moderators who are not necessarily very tech savvy. Finding the original URLs is not very easy for them. They just want to copy the URL from the address bar. So, I had to patch moderation.php.
(2015-07-20, 01:15 PM)Eldenroot Wrote: [ -> ]Same issue, could you fix this please?

agree Shy
I have this installed on MyBB1.8(by changing compatibility) but can't seem to get the URL portion to work. For example forum 2 is rewritten as http://emergencyeurope.x10.mx/forum-2.html

Here is my .htaccess

# EXAMPLE .htaccess FOR MYBB WITH GOOGLE SEO URL
# -------------------------------------------------------------------
# This file is identical to MyBB's htaccess.txt example file,
# with rewrite rules for a standard Google SEO install added.
#
# Before using this file please make sure to:
#
#   - replace /MyBB/ with your forum folder, e.g. / or /forum/
#   - replace yoursite/MyBB with your forum URL
#   - name the file '.htaccess' (starting with the dot, no .txt)
#
# Alternatively you can add the required rewrite rules to your
# existing .htaccess, the specific rules required will be displayed
# on the plugin status page once Google SEO URL is enabled.
# -------------------------------------------------------------------

Options -MultiViews +FollowSymlinks -Indexes

#
# 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

	# Some hosts need a RewriteBase specification.
	RewriteBase /

	# Google SEO workaround for search.php highlights:
	# Make this rule the first rewrite rule in your .htaccess!
	RewriteRule ^([^&]*)&(.*)$ http://emergencyeurope.x10.mx/$1?$2 [L,QSA,R=301]

	# Google SEO Sitemap:
	RewriteRule ^sitemap-([^./]+)\.xml$ misc.php?google_seo_sitemap=$1 [L,QSA,NC]

	# Google SEO URL Forums:
	RewriteRule ^Forum-([^./]+)$ forumdisplay.php?google_seo_forum=$1 [L,QSA,NC]

	# Google SEO URL Threads:
	RewriteRule ^Thread-([^./]+)$ showthread.php?google_seo_thread=$1 [L,QSA,NC]

	# Google SEO URL Announcements:
	RewriteRule ^Announcement-([^./]+)$ announcements.php?google_seo_announcement=$1 [L,QSA,NC]

	# Google SEO URL Users:
	RewriteRule ^User-([^./]+)$ member.php?action=profile&google_seo_user=$1 [L,QSA,NC]

	# Google SEO URL Calendars:
	RewriteRule ^Calendar-([^./]+)$ calendar.php?google_seo_calendar=$1 [L,QSA,NC]

	# Google SEO URL Events:
	RewriteRule ^Event-([^./]+)$ calendar.php?action=event&google_seo_event=$1 [L,QSA,NC]

	# Google SEO 404:
	ErrorDocument 404 /misc.php?google_seo_error=404

	# Default MyBB Rewrite Rules:
	RewriteRule ^forum-([0-9]+)\.html$ forumdisplay.php?fid=$1 [L,QSA]
	RewriteRule ^forum-([0-9]+)-page-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2 [L,QSA]

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

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

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

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

	RewriteRule ^calendar-([0-9]+)\.html$ calendar.php?calendar=$1 [L,QSA]
	RewriteRule ^calendar-([0-9]+)-year-([0-9]+)\.html$ calendar.php?action=yearview&calendar=$1&year=$2 [L,QSA]
	RewriteRule ^calendar-([0-9]+)-year-([0-9]+)-month-([0-9]+)\.html$ calendar.php?calendar=$1&year=$2&month=$3 [L,QSA]
	RewriteRule ^calendar-([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 ^calendar-([0-9]+)-week-(n?[0-9]+)\.html$ calendar.php?action=weekview&calendar=$1&week=$2 [L,QSA]

	RewriteRule ^event-([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/x-javascript text/css text/html text/xml
</IfModule>
I fixed by myself... just edit moderation.php
I edited my .htaccess as I noticed an error and I have Google SEO URLs turned on in Admin CP.