Это кажется таким простым, и есть множество вопросов, касающихся .htaccess онлайн, но после двух дней исследований я все еще не могу заставить свою работу работать так, как я хочу.
То, что я хочу, это:
Принудительно https для всех запросов
Всегда используйте версию URL "www".
Работа на нескольких доменах (, но не перенаправление их всех на главный домен).Все мои домены указывают на одну и ту же папку (поэтому они используют одну и ту же кодовую базу), а в корне у нее находится файл .htaccess.
Удалите часть «index.php» изURL, чтобы сделать его удобным для людей и SEO.
Это то, что у меня есть:
Начните с основного кода .htaccess для CodeIgniter, как показано в userguide :
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1
Первоначально в последней строке был флаг [L]
, но я его опустил, поэтому он будет продолжать следовать следующим правилам.(Правильно ли я предполагаю, что он берет вывод url в предыдущем RewriteRule и выполняет на нем следующие совпадения?)
# for non www urls, add www and force https:
RewriteCond %{HTTP_HOST}(.*) !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R,L]
# for www urls, just force https:
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]
Приведенный выше код выполняет задачи 1-3 из моего списка выше, ноindex.php все еще отображается в адресной строке.Как мне это удалить?