Codeigniter htaccess для удаления index.php и www

Я пытаюсь получить правила перезаписи htaccess, чтобы удалить index.php из URL-адреса, а также перенаправить www. запросы к версии, отличной от www.

Это мой htaccess, который отлично работает с удалением index.php:

 RewriteEngine on RewriteCond $1 !^(index\.php|resources|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

И я столкнулся с другим вопросом о том, как удалить часть www :

 RewriteEngine On RewriteCond %{HTTPS} !=on RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

Но я просто не могу заставить их играть красиво вместе! Любые советы / предложения, которые наиболее ценятся!

 RewriteEngine On RewriteCond %{HTTPS} !=on RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L] RewriteCond $1 !^(index\.php|resources|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

RewriteEngine On "начинается" переписывание. RewriteCond и RewriteRule работают как пары. Здесь мы сначала отправляем пользователя в не-www-версию и очищаем URL-адреса.

Сначала вам нужно убедиться, что правило перезаписи «не-www» будет первым, а затем одно, которое перенаправит все запросы в файл начальной загрузки CodeIgniter. Обратите внимание, что следующий код будет отмечать только перезаписи HTTP. Если вам также нужен HTTPS, он требует некоторых изменений.

 RewriteEngine on # Sending all www requests to the non-www version. RewriteCond %{HTTP_HOST} ^www.domain.com [NC] RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301] # Now the CodeIgniter part RewriteCond $1 !^(index\.php|resources|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA]