Вопрос Beginner .htaccess (связанный с codeigniter)

#php #.htaccess #codeigniter #sysadmin #httpd.conf

#php #.htaccess #codeigniter #системный администратор #httpd.conf

Вопрос:

Я впервые настроил CodeIgniter для своей настольной версии веб-сайта, и у меня возникли небольшие проблемы после изменения AllowOverride с None на All, чтобы работали следующие правила .htaccess:

 DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index.php|images|css|js|m|robots.txt|favicon.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
  

Проблема в том, что у меня есть мобильная версия веб-сайта, расположенная по m.domain.com — который извлекает его содержимое из domain.com/m . Когда AllowOverride было ‘None’, это работало отлично. Теперь, когда я изменил его на ‘All’ и внедрил вышеупомянутый файл .htaccess, поддомен больше не работает, и я получаю отображаемый HTML-файл «Тестовая страница для сервера Apache».

У кого-нибудь есть идеи, что может быть причиной проблемы?! Спасибо!

Ответ №1:

Почему вы разрешаете переопределять все только для одного файла htaccess, когда вы могли бы встроить его в vhost conf и вернуться к AllowOverride None, где все, кажется, работает лучше для вас?

На стороне примечания AllowOverride All — это то, с чем вы обычно не пытаетесь ничего делать.

Пример :

 <VirtualHost *:80>
    ServerAlias yourdomain.com
    DocumentRoot /var/www/
        <Directory "/var/www/folder">
                RewriteEngine On
                RewriteRule XXXXXX
        </Directory>
        <Directory "/var/www/another">
                RewriteEngine On
                RewriteRule XXXXXX
        </Directory>
</VirtualHost>
  

Комментарии:

1. Извините — я довольно новичок. Я не знал, как использовать vhost conf, чтобы переопределять только один каталог, но я изучу это сейчас.

2. Спасибо за всю помощь — я действительно ценю ti