Index.php still reachable/indexable despite pretty URLs being set

So I noticed that Google Search Console is indexing and

The thing is, I’ve had pretty URLs set up following the documentation this whole time. And when I go to it does not show any more. And when I go to sub-pages the index.php isn’t part of the hyperlink.

HOWEVER when I directly go to or it does NOT redirect to a URL without index.php, and index.php is there.

So google is indexing bad pages, and so far as I can tell the .htaccess rewrite presented is not sufficient. I’ve tried a few permutations (which I have since forgotten the details of, sorry), and I had one configuration that seemed to work, but when I went to a dashboard to modify the attributes of a page, I had load errors. And those page load errors went away when I removed those modifications.

Anyways, this is the contents of my .htaccess :

<IfModule mod_rewrite.c>
	RewriteEngine On
	RewriteBase /
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME}/index.html !-f
	RewriteCond %{REQUEST_FILENAME}/index.php !-f
	RewriteRule . index.php [L]

I couldn’t quite land on a single reliable configuration, so I was hoping someone could chime in. I’m also on v8.5.12, and upgrading to v9 is not currently possible due to addon limitations.

Anyways, is anyone able to help with the rewrite contents I need in .htaccess please?

One thing to check is if your sitemap.xml needs regenerating? Just in case it’s got index.php entries in there confusing Google.

My sitemap.xml is generating properly, I know that before even checking this :wink: I’m really talking about more an Apache configuration probably. (one centric to Concrete CMS maybe?)

Are you using canonical urls? Google shouldn’t index if canonical is set to

Yeah I am canonical. I have followed the documentation and steps needed for all of that. A human clicking around the website seems to never encounter index.php . However if I manually go to the page still loads with index.php in the URL, which is likely how Google is indexing/finding those pages. The sitemap doesn’t even list any entries for index.php in any way!

And yes the .htaccess file does include the code that Concrete CMS spits out. Also keep in mind I’m using v8.5.12, so I don’t know if what is generated in v9.x is different or not (there’s addons blocking me from upgrading to v9 right now).

Yeah I’m still not seeing why any htaccess or other changes I made are actually allowing the /index.php content, and I’m actually now seeing this with 3x Concrete CMS websites (all v8.5.x).

I’ve found some threads alluding to this being a Concrete problem (from many years ago) and I’m really not sure what I can actually do at this point to improve this. This is actually hurting the SEO of these websites, so really do need a solution here! Anyone? :frowning:

You mention the .htaccess includes what Concrete CMS spits out - but does it contain other stuff, or have you modified it? Just wondering if trying just exactly what Concrete provides would be worth testing. Because yeah, otherwise I’m stumped.