That looks like it might be okay with a few changes:
Delete the wrapper. That’s a sure sign of a “not ready for prime time” webmaster. You should know whether mod_rewrite is available and should not waste machine cycles repeating a test you already know the answer to - are you expecting it to be disabled any time soon?
I avoid RewriteBase comments as they can change the directory level unexpectedly. I simply install my mod_rewrite code where I know it is required and specifically handle the subdirectories within the code. Simply delete this, too.
The first RewriteRule is, IMHO, a stupid addition by the WP staff as it’s already covered by the first RewriteCond statement (index.php exists). Just delete it.
The second RewriteRule simply redirects everything (except files and directory requests which exist) to the mybignightout/index.php script. Why? Are you expecting a request which will not match the third RewriteRule?
The third RewriteRule has major problems:
If this code is in the DocumentRoot, you’ll need to specify mybignightout/ after the start anchor.
Your character range definition will NOT match the hyphens in your title string. Add - as the first character.
The No Case flag had NO PLACE in a RewriteRule because the {REQUEST_URI} is case sensitive! Delete the 'NC, ’ from the flags.
This time you’ve introduced capital letters and the /. You already have caps included but you must add the / to the character range definition for it to match (and then redirect). Do NOT escape the /, it doesn’t need it.
Good place for the mybignightout mod_rewrite code! Gudonya.
Add R=301, to the Last flag so you can see the redirection. Obviously, this is best done on a test server but use it on your production server if you have to. Seeing the redirection working (or NOT working) is a good step in troubleshooting.
I put my mod_rewrite code in the DocumentRoot because I’ve forgotten whether Apache does look for the / after the anchor IN A SUBDIRECTORY or not. Of course, you could try with ^/?brighton-hen-activities/… and see if the missing (optional in this code) / makes a difference. Sorry, my bad as I should know that one (but I’m guessing only the DocumentRoot’s leading / is to be avoided in Apache 2+).
Aw, @#$%! It’s the order of the RewriteRule sets! The first RewriteRule redirects EVERYTHING to mybignightout/index.php so the {REQUEST_URI} is changed and the second RewriteRule is never matched. Go figure.
Move the second RewriteRule to just after RewriteEngine on (it IS supposed to be on, not On, but it doesn’t really make any difference - just my being pedantic).
Sorry for not THINKING before this.
Once that’s confirmed to be working, delete the flag on that RewriteRule (the one you moved) so that visitors won’t see the activities/?title={whatever}&type=hen URI.
Have you established the DirectoryIndex in the activities subdirectory?
Even if you have (it should have inherited from the parent directories), try putting the redirection file before the ? in the redirection (it may be that Apache is not looking up the DirectoryIndex before going on to the next RewriteRule block (I can’t imagine why not but I’m not a fan of not redirecting to a file like you’re trying to do; the redirection will be hidden so relying on the DirectoryIndex seems a silly thing to do (to me, anyway, because it’s not wrong, just not to my taste).
It’s nearly 1AM so I’m off for a night’s sleep and MAY be a better help tomorrow.
If that’s the case, it’s no wonder Apache can’t serve it! I just hate Options MultiViews and attempting to add a query string to the URI SHOULD (IMHO) confuse Apache (albeit Apache is much smarter than I am).
Again, since the redirection will not be shown, redirect to the actual script you want to use.
the url on address bar changes IS NOT changing and its showing the redirected page properly. No problem here, except as the permalink is set to default the page url like http://domain.com/mybignightout/stag-activities/ is showing the home page.
That’s my idea. I guess I don’t really understand the difference between brighton-hen-activities/DONATELLOS and stag-activities. IMHO, you must be trying to get too fancy with your redirections to ? and expecting Apache to guess which file its supposed to serve. Okay, it’s more likely that I’m just confused. For my own peace of mind, would you please specify the redirections (requested URI to served URI) you want to make BEFORE WP simply redirects everything (not a file or directory) to its specified index.php? Thank you!