OpenLiteSpeed/myBB vs Friendly URL's

#1
OK... got the friendly URLS working on my XenForo and WP sites... but myBB is another matter.

My rewrite is the standard one provided by myBB:
Code:
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]
and the results are:
Code:
2014-03-27 01:42:24.779    INFO    [64.188.254.247:54191] [REWRITE] Rule: Match '/forum-4.html' with pattern '^forum-([0-9]+)\.html$', result: -1
2014-03-27 01:42:24.779    INFO    [64.188.254.247:54191] [REWRITE] Rule: Match '/forum-4.html' with pattern '^forum-([0-9]+)-page-([0-9]+)\.html$', result: -1
2014-03-27 01:42:24.779    INFO    [64.188.254.247:54191] [REWRITE] Rule: Match '/forum-4.html' with pattern '^thread-([0-9]+)\.html$', result: -1
With the friendly URL's enabled the result is http://consoledaze.com/forum-4.html and without it they are http://consoledaze.com/forumdisplay.php?fid=4.

It looks like they are NOT taking (result: -1)? Any suggestions (the forum does try to redirect to the SEO friendly URL just displays a 404 Not Found error.

I have also tried with the Google SEO plugin and rewrites of:
Code:
# Google SEO workaround for search.php highlights:
# Make this rule the first rewrite rule in your .htaccess!
RewriteRule ^([^&]*)&(.*)$ http://consoledaze.com/$1?$2 [L,QSA,R=301]

# Google SEO 404:
ErrorDocument 404 /misc.php?google_seo_error=404
# 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]
and same problem.

MyBB shows http://consoledaze.com/Forum-xBox in address bar (without SEO it would show http://consoledaze.com/forumdisplay.php?fid=4)

Debug in OLS log shows:
Code:
2014-03-27 01:51:08.469    INFO    [64.188.254.247:546593#ConsoleDaze] [REWRITE] Rule: Match '/Forum-xBox' with pattern '^Forum\-([^./]+)$', result: -1
2014-03-27 01:51:08.469    INFO    [64.188.254.247:546593#ConsoleDaze] [REWRITE] Rule: Match '/Forum-xBox' with pattern '^Thread\-([^./]+)$', result: -1
I had it working fine with nginx.
 
Last edited:

lsmichael

Active Member
#2
Howdy Tracy,

Correct me if I'm wrong, but this looks like the issue I spoke about in this thread: http://openlitespeed.com/threads/elgg-installation.31/#post-90

Namely, these rewrite rules are written for .htaccess files and not virtual hosts. A rule in an .htaccess file assumes the filesystem path up to the directory with the .htaccess rule. A rule in a virtual host looks for a pattern in the URL after the hostname. The key difference is that the pattern in the URL starts with "/".

Mostly all you have to do is put "/" at the start of things like "showthread.php" so that the rewrite engine recognizes them in the URL.

That's the solution for now, but this is certainly a pain. We will make it easier to transfer your rewrites to OpenLiteSpeed. I can't say how yet. (Recently, OpenLiteSpeed development has been pretty consumed by work on the API for third party modules.) We will do something to make this easier, though.

Michael
 
#3
Bingo! Thanks @lsmichael, that solved the problem. I knew it was probably something simple but couldn't find it doing a google search. The built in friendly works with it now.
Now it's time to go to work on the Google SEO one.
 
Top