Pergunta

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>
Foi útil?

Solução

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top