Powered by CodeIgniter

Баг-трекер

(120)
22
22 голоса
Собираем все баги, которые вы обнаружите.
Доброго времени суток!
Ситуация следующая.
В .htaccess сайта присутствуют следующие строки:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 Все прекрасно работает под LAMPP, но не работает на ispCP (возвращает 404).
Естественно, прямой линк вида index.php/tags (вынут из /tags) отображает все верно.

При чем, следующая запись rewrite'ит исправно, но не работает для самого движка:
#Если не объявить индекс - не найдет (в папке еще дефолтная index.html) DirectoryIndex index.php RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/?$1 #Или так: #RewriteRule ^(.*)$ index.php/?q=$1 Словом, везде, где будет объявлен get параметр — все в порядке (окромя работы url сайта :))
Я полагаю, что где-то в конфигах стоит запрет на рерайт жестких ссылок, но разрешены рерайты на get-запросы. Но где это искать и как правильно убрать?

Заранее спасибо.
19:26 ← 15 апреля 2011 Отправить в Твиттер extempl7extempl7  RSS comments 4

Комментарии (4) ↓

Автор
extempl7 extempl7 time 20:49 ← 16 апреля 2011 #
Проблема решилась установлением в /engine/config/config.php:66 значения AUTO и скармливанием серверу строки в .htaccess RewriteRule ^(.*)$ index.php/?$1 За что Диме большое человеческое спасибо :)
Автор
extempl7 extempl7 time 12:07 ← 17 апреля 2011 #
Из-за приведенного выше решения, перестал работать поиск (там get запросы), поэтому его надо переставить на post:
/gears/search/index.php:49-55
$query = $this->input->post('query'); $this->session->set('search/query',$query); если просто раскомментировать — то при отсутствии запроса вылезет ошибка (в if ниже нечего проверять), поэтому присваиваем явно (ячитывая что get вариант работать вообще не будет)
/gears/search/index.php:68
$this->form->method = 'post';
/gears/search/widgets/search.php:36
\<form method="post" id="search_widget" action="'.l('/search/').'"\></code></blockquote>
Автор
extempl7 extempl7 time 12:09 ← 17 апреля 2011 #
в конце без backslash и без двух последних тегов :)
Автор
extempl7 extempl7 time 12:15 ← 17 апреля 2011 #
я для себя еще, ежели кому нужно такое, первый if изменил на следующий:
if(!$query) { $this->builder->h1(t('!gears search'),TRUE); $this->form->method = 'post'; } ибо виджет и сайдбар не использую, а строка поиска нужна при переходе по прямой ссылке site.com/search ну и info там не нужно, т.к. запрос естественно пустой.