Rewrite_rool объединение 2-х условий

Рейтинг: 0Ответов: 1Опубликовано: 17.12.2014

Значится, проблема такая:

На проекте, сделанном на CodeIgniter, есть файл .htaccess со следующим содержимым:

RewriteEngine on
RewriteCond $1 !^(index\.php|img|js|css|robots\.txt)
RewriteRule ^(.*)$ /index.php?/$1 [L]

И все чудно работало.
Появилась необходимость прописать редирект всего с http на https.
Путем гугления были добавлены 2 строки:

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

Все бы ничего, но теперь при переходе по ссылке site.ru идет переброс на https://site.ru/index.php?/

Агалогичным образом site.ru/order превращается в https://site.ru/index.php?/order

Как это побороть? Спасибо.

Обновление

Надо, чтоб адреса типа site.ru/controller перенаправлялись на site.ru/controller/index.php
Это первое условие (ну, по факту, просто делаем красивые урлы, убирая index.php).

Ну и второе - чтоб все запросы http переадресовывались туда же, но на https.

В общем, надо, чтоб если запрашивался site.ru, в урле было http://site.ru, а не http://site.ru.index.php?/

Ответы

▲ 1

RewriteRule делает именно то, что прописано у вас в htaccess.
Напишите, какие, например, адреса запрашиваются и во что должны преобразовываться.

Обновление

Сначала делай переадресацию на https, а уже после того, как переадресовано, делай Rewrite, чтобы убрать index.php