#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