MyBB Community Forums

Full Version: htaccess assistance
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Ok, I'm trying to help a client.... this is their main folder .htaccess:
# .htaccess main domain to subdirectory redirect
# Copy and paste the following code into the .htaccess file
# in the public_html folder of your hosting account
# make the changes to the file according to the instructions.
# Do not change this line.
RewriteEngine on
# Change yourdomain.com to be your main domain.
RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$
# Change 'subdirectory' to be the directory you will use for your main domain.
RewriteCond %{REQUEST_URI} !^/subdirectory/
# Don't change this line.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Change 'subdirectory' to be the directory you will use for your main domain.
RewriteRule ^(.*)$ /subdirectory/$1 [L]
# Change yourdomain.com to be your main domain again.
# Change 'subdirectory' to be the directory you will use for your main domain
# followed by / then the main file for your site, index.php, index.html, etc.
RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$
RewriteRule ^(/)?$ subdirectory/index.php [L]

However, if they go to a subfolder without a trailing slash:
http://www.yourmaindomain.com/chat
It redirects you to:
http://www.yourmaindomain.com/subdirectory/chat/
Instead of:
http://www.yourmaindomain.com/chat/

But if you put in
http://www.yourmaindomain.com/chat/
It works as expected.

So... whats the error in this htaccess and how do we fix it?
Try this;
# .htaccess main domain to subdirectory redirect
# Copy and paste the following code into the .htaccess file
# in the public_html folder of your hosting account
# make the changes to the file according to the instructions.
# Do not change this line.
RewriteEngine on
# Change yourdomain.com to be your main domain.
RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$
# Change 'subdirectory' to be the directory you will use for your main domain.
RewriteCond %{REQUEST_URI} !^/subdirectory/
# Don't change this line.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Change 'subdirectory' to be the directory you will use for your main domain.
RewriteRule ^(.*)$ /subdirectory/$1/ [L]
# Change yourdomain.com to be your main domain again.
# Change 'subdirectory' to be the directory you will use for your main domain
# followed by / then the main file for your site, index.php, index.html, etc.
RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$
RewriteRule ^(/)?$ subdirectory/index.php [L]
But that wouldn't work for things not outside of folders such as /chat/, and so would fail wouldn't it?
??

"not things outside"? That means "things inside".

/forum/inc/index.php works as either http://www.mysite.com/inc or http://www.mysite.com/inc/ (if I use htaccess in / to redirect to /forum/).
I mean would regular files continue to work. Such as http://www.mysite.com/contact.html From the looks of that Rewrite: No.