Php 使用mod rewrite从google隐藏变量

Php 使用mod rewrite从google隐藏变量,php,.htaccess,mod-rewrite,Php,.htaccess,Mod Rewrite,我注意到谷歌用URL中的变量为我的页面编制索引,而其他页面没有这些变量。这些其他页面中没有变量,在没有php扩展的情况下索引良好。 例如: mydomain.com/page.php?name=flinstones my htaccess将其改写为: mydomain.com/flinstones 但在谷歌搜索和谷歌分析中,它仍然表现为前者 有没有办法强制它只显示/浏览漂亮的URL 这是我的密码。。第一部分起作用,但重定向不起作用。 我如何使它工作? RewriteEngine On Rew

我注意到谷歌用URL中的变量为我的页面编制索引,而其他页面没有这些变量。这些其他页面中没有变量,在没有php扩展的情况下索引良好。

例如:

mydomain.com/page.php?name=flinstones

my htaccess将其改写为:

mydomain.com/flinstones

但在谷歌搜索和谷歌分析中,它仍然表现为前者

有没有办法强制它只显示/浏览漂亮的URL

这是我的密码。。第一部分起作用,但重定向不起作用。 我如何使它工作?

RewriteEngine On
RewriteRule ^([^/\.]+)/?$ page.php?name=$1 [L]

RewriteRule ^page.php?name=([^/\.]+)/?$ /$1  [R=301,L] 

谢谢,

是的,永远不要让谷歌看到丑陋的链接!在php/html代码中,始终只使用它的良好形式。那么谷歌就没有机会了:-)

是的,永远不要让谷歌看到丑陋的链接!在php/html代码中,始终只使用它的良好形式。那么谷歌就没有机会了:-)

Mod rewrite的意思是: 如果此表单“xxxxx”出现页面请求
按“yyyy”的方式管理它
并且一定要通知请求者任何事情。
所以在你的例子中,谷歌认为这两个URL都是有效的(并且是重复的),哎哟
对于您的情况,请使用
301重定向
,这意味着:“xxxxx”不是有效的请求(或已弃用),请请求者(谷歌或任何人)使用instead“yyyy”。那么“xxxxx”很快就会被遗忘。
另一方面,
mod rewrite
mydomain.com/flinstones
重写为:
mydomain.com/page.php?name=flinstones
遵守SEO规则并让php管理请求。

Mod rewrite意味着: 如果此表单“xxxxx”出现页面请求
按“yyyy”的方式管理它
并且一定要通知请求者任何事情。
所以在你的例子中,谷歌认为这两个URL都是有效的(并且是重复的),哎哟
对于您的情况,请使用
301重定向
,这意味着:“xxxxx”不是有效的请求(或已弃用),请请求者(谷歌或任何人)使用instead“yyyy”。那么“xxxxx”很快就会被遗忘。
另一方面,
mod rewrite
mydomain.com/flinstones
重写为:
mydomain.com/page.php?name=flinstones

遵守SEO规则并让php管理请求。

是的,您可以告诉Google页面的搜索引擎是什么

<link rel="canonical" href="http://mydomain.com/flinstones" />

是的,你可以告诉谷歌一个页面的价格是多少

<link rel="canonical" href="http://mydomain.com/flinstones" />


,您可以考虑创建301个重定向,将索引的坏URL重定向到漂亮的URL。这样,您就可以在将已编制索引的页面从Google索引中删除的同时保留页面排名。@Jan Henk,是的,注意得好!如果只是一个普通的重定向,我想他将不得不等待更长的时间。是的,当然,我在网站上的链接只使用漂亮的URL。它是否像将
[R=301,L]
添加到我的规则
RewriteRule^([^/\.]+)/?$page.php那样简单?name=$1[L]
应该可以解决它吗?@checkenginelight,不!这是为您创建丑陋URL的规则,但这必须是内部的。你必须添加一个新的规则,它将丑陋的URL重写为漂亮的URL,这个规则将使用<代码> R=301 < /Cord>属性。你能给出一个新规则应该是什么的例子吗?你可以考虑创建301个重定向来重定向被索引的坏URL到漂亮的URL。这样,您就可以在将已编制索引的页面从Google索引中删除的同时保留页面排名。@Jan Henk,是的,注意得好!如果只是一个普通的重定向,我想他将不得不等待更长的时间。是的,当然,我在网站上的链接只使用漂亮的URL。它是否像将
[R=301,L]
添加到我的规则
RewriteRule^([^/\.]+)/?$page.php那样简单?name=$1[L]
应该可以解决它吗?@checkenginelight,不!这是为您创建丑陋URL的规则,但这必须是内部的。您必须添加一个新规则,将丑陋的URL重写为漂亮的URL,此规则将使用
R=301
属性。您能否举例说明新规则应该是什么?这比301重定向有优势还是两者都使用更好?此规则和301重定向将有类似的结果。各有所长。Canonical将捕获您不知道的URL。301s将在物理上重定向用户(以便他们看到漂亮的URL),对于非谷歌搜索引擎可能会有更好的结果。最终,你可以两者兼用。谢谢!我想先让我的301重定向工作。:)这比301重定向有优势吗?还是两者都使用更好?这和301重定向的结果相似。各有所长。Canonical将捕获您不知道的URL。301s将在物理上重定向用户(以便他们看到漂亮的URL),对于非谷歌搜索引擎可能会有更好的结果。最终,你可以两者兼用。谢谢!我想先让我的301重定向工作。:)