我已经将一个静态HTML网站重新开发为动态PHP网站,这个旧网站拥有我不想失去的谷歌排名。
旧URL结构
www.mysite.com/somepage/index.html
新的URL结构:
www.mysite.com/page.php?id=10
,其中10
是somepage
的id
我试过这种方法,但没有成功。
<IfModule mod_rewrite.c>
RewriteEngine On
Redirect 301 /somepage/index.html www.mysite.com/page.php?id=10
</IfModule>
请注意,Redirect
不是mod_rewrite的一部分,而是mod_alias的一部分。使用它不需要打开重写引擎。
如果你想"重写",比如在中,在服务器内部更改URL,而互联网的其他部分不知道它已经更改,那么你应该使用mod重写,而不是重定向:
RewriteEngine On
RewriteRule ^/?somepage/index.html$ /page.php?id=10 [L]
如果要将所有请求重定向到新的URL,则可以单独使用Redirect
。这让互联网上的其他人知道URL已经更改,并停止使用旧的URL。有了301,谷歌知道,当有301重定向(永久)时,它为旧URL存储的任何元数据都应该迁移到新URL:
Redirect 301 /somepage/index.html /page.php?id=10
由于您在同一主机内重定向,因此不需要主机名。