Need help with contexts and rewrite rules for different app installs under same vhost




So I am trying to switch my website over to Open Litespeed. Whilst all the setup goes great and everything starts out really well, things start to get rather complicated and things stop working.

My website constists of Wordpress and Mybb (I will be moving to only a xenforo setup shortly).

The structure of the site is

- root
- - frontend (this is wordpress_
- - forum
- - index.php

If you go to you will be shown wordpress based on the instructions at

Then if you go to the forums are shown. Both have their own rewrite rules.

If I setup on the the forum and add a context with the rewrite rules below it works.

# Some hosts require RewriteBase to make RewriteRules work.

    # Google SEO workaround for search.php highlights:
    # Make this rule the first rewrite rule in your .htaccess!
    RewriteRule ^([^&]*)&(.*)$$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]
    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]
Everything works fine with that, though I have to play with the settings under the context.

I think the key here isn't so much the rules as it is the configuration of the static content.

With the rule above everything is working. However when I add the following rules for wordpress under the main vhost rewrite wordpress works and the forum index works but any of the other forums fail with the wordpress 404 error, or depending on how the context is configured either get a litespeed 404 error page or a resource not found error.

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /frontend/index.php [L]
So My question is, and i apologise as I may need pretty explicit instructions here, since i have tried every imaginable combination I can come up with, including changing the rewrite rules to contain / etc.

- How do I setup a site structure as above with multiple systems on same URL under different folders and have the rewrite rules work?
- How can I stop them interfering?
- Am I a moron? (I suspect yes to be the answer here, though I am going to blame lack of sleep)

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /frontend/index.php [L]
how about add a line:
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_URI} !/forum
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /frontend/index.php [L]


If I am reading that correctly, that will make all requests to http://mydomain display the forum http://mydomain/forum.

Edit: tested yest this makes the root show the forum.

What I need is

http://mydomain/ - Shows wordpress
http://mydomain/forum - Shows forum
--- This was previously working

however going to http://mydomain/forum/Forum-General-Discussion-Forum
just shows a 404

Edit 2: removed the context and all the rules then re-added the context and the rules as specified above and all is working, wow such a simple change! Thank you


trying to decide now between centmin mod and openLiteSpeed, I think just for support purposes I am going to go with centmin mod but keep openLiteSpeed as a fallback if there are issues in the next few months


Active Member
Thanks for considering us and for letting us know how your decision process went.

Let us know if you ever have any other questions. (And tell your friends!)



I am certainly keeping openlitespeed in mind. I am up and running on centminmod but will see what happens when I actually roll out my new website which will be moving from WP + Mybb to Xenforo.

At that stage I may role out.

I really see the massive potential this system has, and I would go for litespeed if money were no object. Once the support for OLS and the documentation grows I have no doubt it will start making real moves, easy install, easy setup it was just the time to get the htaccess rules working that slowed me and I can't afford that in a live environ.

Cheers and thanks for the good work