5 .htaccess Reescreve: Force HTTPS, Remova index.php, Remova .php, Force www, Force Trailing Slash

Eu li muitos artigos e não consigo fazer com que TODAS as Rewrites .htaccess combinadas funcionem juntas. Eu recebo loops redirecionados ou um ou alguns não funcionam.

Para ficar claro, estou procurando os seguintes 5, se necessário:

Garanta www em todos os URLsGaranta HTTPS para todas as versões do siteRemova o index.php de urlRemova toda a extensão .php / Redirecionar para URL sem extensão .phpPode estar em conjunto com o anterior:adicionar barra à direita

Alguns exemplos:

example.com/index.php =>https://www.example.com/www.example.com/info/really-good-info.php =>https://www.example.com/info/really-good-info/www.example.com/about-us.php =>https://www.example.com/about-us/www.example.com/careers/index.php =>https://www.example.com/careers/

Aqui está a configuração atual do .htaccess:

<IfModule mod_rewrite.c>
Options +SymLinksIfOwnerMatch
RewriteEngine On
RewriteBase /

# Remove all .php extensions without interfering with .js or .css.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)\.(?!js|css)([^.]*)$ $1\.php

# Remove index from url.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index?$1 [L,QSA]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)/index\.php [NC]
RewriteRule ^ %1 [R=301,L]

# Ensure www on all URLs.
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]

# Ensure we are using HTTPS version of the site.
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Ensure all URLs have a trailing slash.
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ https://www.example.com/$1/ [L,R=301]

</IfModule>

O .htaccess acima está APENAS na minha pasta raiz e atualmente faz 3 dos 5 necessários: altera para HTTPS, adiciona www e remove index.php. Não remove nenhuma outra extensão de arquivo .php nem adiciona barra à direita.

questionAnswers(2)

yourAnswerToTheQuestion