Назад | Перейти на главную страницу

.htaccess игнорирует два уровня только на некоторых планах хостинга

У меня есть один файл .htaccess, который делает это:

RewriteRule ^system(.*)$ /system/app/$1 [QSA,L]

... а затем под / system / app у меня есть другой файл .htaccess, который делает это:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [QSA]

Итак, когда вы подключаетесь к / system и / system / login, он должен вызывать /system/app/index.php в обоих случаях.

На большинстве планов хостинга, с которыми я работаю, это работает. Но на нескольких тарифных планах клиентского хостинга я получаю необычный результат. Этот необычный результат заключается в том, что я могу нормально подключиться к / system и загрузить index.php, но если я подключусь к / system / login, я получу 404. Я даже упростил /system/app/index.php и просто сделал :

<?php print_r($_SERVER);

... но он показывает результат только в / system и показывает 404 if / system / login. Теперь переключитесь на план хостинга другого парня, и он работает нормально - это только на некоторых планах хостинга.

Как вы думаете, в чем может быть проблема? Это mod_security? Включен ли MultiViews? Причина этого в конкретной версии Apache? Это ошибка в Apache? Я сбит с толку.

РЕДАКТИРОВАТЬ: Мне почти интересно, есть ли новая конфигурация Apache, которая позволит вам иметь только один файл .htaccess в корневом каталоге или не позволит вам загрузить один файл .htaccess, а затем вызвать другой файл .htaccess в подпапке.

РЕДАКТИРОВАТЬ: ПОДОЖДИТЕ, прежде чем пытаться закрыть этот вопрос как "слишком локализованный". Послушай меня минутку. Если это совершенно новая опция в Apache или cPanel, которую можно включить, создавая эту проблему, или это новая функция mod_security, не думаете ли вы, что это будет проблема, которая затронет ТОННУ ЛЮДЕЙ, а не только тех, кто включен? HostGator?