Назад | Перейти на главную страницу

Правило перезаписи Apache для удаления index.php и направления определенных областей на https

У меня есть приложение codeignitor, работающее на Apache2, мне удалось удалить index.php из URL-адресов с помощью этого .htaccess

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L] 

Теперь я хочу, чтобы определенные части сайта перенаправлялись на https, я пробовал это:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L] 
RewriteRule ^/?cpanel/(.*) https://%{SERVER_NAME}/cpanel/$1 [R,L]
RewriteRule ^/?login/(.*) https://%{SERVER_NAME}/login/$1 [R,L]

Но не работает. Я должен сказать, что когда дело доходит до Apache, я переписываю новичка. Я не могу найти никаких руководств о том, как удалить index.php и переписать / перенаправить определенные части сайта на https.

Любые идеи,

Спасибо.

В [L] означает "последний", т.е. прекратить обработку дальнейших правил, если это правило совпадает. я угадать что CPanel использует «виртуальные» URL-адреса (т. е. не указывает на фактические файлы), и, следовательно, такие URL-адреса, как /cpanel/some-action-that-is-not-actually-a-file попадают в ловушку по первому правилу, а не по последним.

Попробуйте переместить последние два правила между RewriteEngine и твой первый RewriteCond ?

(РЕДАКТИРОВАТЬ: а также исправить цикл перенаправления, как указано в комментариях под вопросом)