I have a subdomain created on Cloudflare which is linked to a cPanel account. When I visit a link other than the main directory, the page will work, but when visiting the root, it gives me a redirect loop. I have nothing in my home directory that would cause this and the DNS settings are all set up correctly.
It’s a HTTP to HTTPS and back loop. Quite often, this is because Cloudflare is connecting to your site with one protocol, but your site has a redirect to the other one.
What’s your SSL setting here at Cloudflare? It should be either Flexible or Full
You have Cloudflare set to Always Use SSL which is a global setting, but then a page rule (applied only to the root) which attempts to disable SSL for a specific zone. The Always use https rule is a global one so that appears to be causing the loop.