I have redeveloped a static HTML website to dynamic PHP website, old website having Google ranking that I don't want to lose.
Old URL Structure
www.mysite.com/somepage/index.html
New URL Structure:
www.mysite.com/page.php?id=10
where 10
is id of somepage
I tried it this way with no success.
<IfModule mod_rewrite.c>
RewriteEngine On
Redirect 301 /somepage/index.html www.mysite.com/page.php?id=10
</IfModule>
Note that Redirect
is not part of mod_rewrite, it's part of mod_alias, and you don't need to turn on the rewrite engine to use it.
If you wanted to "rewrite", as in, change the URL internally within the server, and the rest of the internet doesn't know it's been changed, then you'd use mod rewrite, and not a redirect:
RewriteEngine On
RewriteRule ^/?somepage/index\.html$ /page.php?id=10 [L]
If you want to redirect all requests to the new URL(s), then you can use Redirect
just by itself. This lets the rest of the internet know that the URL has been changed and to stop going to the old one. With a 301, google knows that whatever metadata it has stored for the old URL should get migrated to the new URL when there is a 301 redirect (permanent):
Redirect 301 /somepage/index.html /page.php?id=10
Since you're redirecting within the same host, you don't need the hostname.