I have one .htaccess file doing this:
RewriteRule ^system(.*)$ /system/app/$1 [QSA,L]
...and then underneath /system/app, I have another .htaccess file doing this:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [QSA]
So, when you connect to /system and /system/login, it should be calling /system/app/index.php in both cases.
On most of the hosting plans I'm working with, this works. But on a few customer hosting plans, I'm getting an unusual result. That unusual result is that I can connect to /system just fine and index.php loads, but if I connect to /system/login, I get a 404. I even simplied /system/app/index.php and made it simply do:
<?php print_r($_SERVER);
...but it only shows a result on /system, and shows a 404 if /system/login. Now, switch to another guy's hosting plan, and it works fine -- it's only on some hosting plans.
What do you think might be the problem? Is it mod_security? Is it MultiViews turned on? Is it a particular version of Apache causing this? Is it a bug in Apache? I'm baffled.
EDIT: I'm almost wondering if there's a new Apache configuration that will only let you have one .htaccess file in the root directory, or won't let you have one .htaccess file load and then call another .htaccess file in a subfolder.
EDIT: WAIT before you try to close this question as being "too localized". Listen to me a minute. If this is a brand new option in Apache or cPanel that one can turn on, creating this problem, or is a new mod_security thing, don't you think it will be a problem that will affect A TON OF PEOPLE, not just those on HostGator?