Я знаю, что есть много подобных вопросов, но я провел более чем за 2 дня исследования его не имели успеха, так что вы моя последняя надежда)Переключение HTTP на HTTPS с использованием mod_rewrite
я написал следующие правила перезаписи:
RewriteCond %{HTTPS} off [NC]
RewriteCond %{REQUEST_URI} ^((/member/settings)?/orders/?)$ [NC]
RewriteRule (.*) https://%{HTTP_HOST}/$1 [L,R=301]
RewriteRule \.(gif|jpe?g|png|css|js|eot|woff|ttf|svg)$ - [NC,L]
RewriteCond %{HTTPS} on [NC]
RewriteCond %{REQUEST_URI} !^((/member/settings)?/orders/?)$ [NC]
RewriteRule (.*) http://%{HTTP_HOST}/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [NC,QSA,L]
Я хочу, чтобы URL-адреса example.com/orders/
и example.com/member/settings/orders/
всегда перенаправлялись на HTTPS, а все остальные принудительно использовали HTTP. Также все запросы должны быть перенаправлены на index.php
. И, очевидно, все медиафайлы должны оставаться в том же протоколе, который был запрошен.
Когда я запрашиваю http://example.com/orders/
, сначала он перенаправляет на https://example.com/orders/
, но затем перенаправляет второй раз на http://example.com/index.php?/orders/
. Что на самом деле ожидается, но проблема в том, что «index.php» появляется в адресной строке браузера.
Вопрос в том, как избавиться от 'index.php' в адресной строке браузера?
Любая помощь будет оценена.
Спасибо за ваш ответ. Мне нужно, чтобы все запросы выполнялись в index.php, поэтому мне нужно это правило. Проблема заключается в том, что «index.php» появляется в адресной строке браузера. –