I am currently using a rewrite rule to enable access to .php pages, without using the php extension. However to prevent old links from breaking, the pages can still be accessed via links containing the .php extension too.
For eg.
domain.com/page.php
can now be accessed at domain.com/page
All the links on the website now use domain.com/page
type links within the site. However older incoming links will still link to the .php pages, meaning Google will index both pages and mark them as duplicate.
I have two plans to remedy the situation.
Use a php 301 redirect: When a page is accessed with the .php extension, I can redirect each page individually using a 301 redirect using php
Using Canonical: Place a canonical tag on each page, pointing to the ".php" less version
My Question:
Are both methods equally efficacious in preventing Google from indexing my ".php" pages?
Which method should be preferred, by convention or otherwise?