Review URL-prettifying .htaccess file
This is basically a canonicalizing URL prettifier that redirects clients to a shorter URL.

The RewriteCond operating on %{THE_REQUEST} is weird, since it works directly at the HTTP protocol level.  I understand that you want to avoid redirecting POSTs, since a redirect would convert POSTs into GETs, and such breakage would be an unacceptable consequence for having nicer-looking URLs.  However, it would be better to test %{REQUEST_METHOD} instead.

In the worst case, you could end up redirecting the client three times:


GET /path/to/directory/index.php/:
GET /path/to/something/index.php
GET /path/to/something/index
GET /path/to/something


By combining the first two rules, you could eliminate the third request.

# Strip off /index.php or /index or .php
RewriteCond %{REQUEST_METHOD} =GET
RewriteRule (.*)(/index\.php|/index|\.php)$ $1 [R=301,L]


In the trailing slash cleanup, you have a superfluous RewriteCond:

# Remove slash if not directory 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*)/$ $1 [R=301,L]


I would tweak your last rule a bit.  Do the string analysis check before the filesystem check.  Use $0 instead of %{REQUEST_URI} and $1.

RewriteCond $0 !(/|\.php)$
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule .* $0.php