Htaccess remove .php, .html and trailing slash

I am trying to remove .php.html and traling slash from url using htaccess, so that this code works fine for php, but not for html and trailing slash

For php

RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC] RewriteCond %{REQUEST_URI} !/system/.* [NC] RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L] # Directs all EE web requests through the site index file RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php/$1 [L] 

For HTML

 RewriteCond %{REQUEST_URI} index.html RewriteRule ^(.*)index.html$ /$1/ [R=301,L] 
+2
source share
1 answer

Have it like this:

 # externally redirect /dir/file.php to /dir/file and remove index RewriteCond %{THE_REQUEST} \s/+(.*?/)?(?:index)?(.*?)\.(?:html?|php)/?[\s?] [NC] RewriteRule ^ /%1%2 [R=301,L,NE] # remove trailing slash RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s] RewriteRule ^(.+?)/$ /$1 [R=301,L] # internally add php extension RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{DOCUMENT_ROOT}/$1.php -f RewriteRule ^(.+?)/?$ $1.php [L] # internally add html extension RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{DOCUMENT_ROOT}/$1.html -f RewriteRule ^(.+?)/?$ $1.html [L] 
+5
source

All Articles