2012-02-04 108 views
0

在我的网站中,我使用了mod重写来制作搜索引擎和用户友好的网址。使我的PHP页面搜索引擎友好

只有3个规则:

RewriteRule ^articles/([a-z]+)/([0-9]+)/?$ /index.php?page=articles&cat=$1&id=$2 [L] 
RewriteRule ^articles/([a-z]+)/?$ /index.php?page=articles&cat=$1 [L] 
RewriteRule ^([a-z]+)/?$ /index.php?page=$1 [L] 

的index.php,但仍然是任何人都可以访问,并会工作,即使不使用友好的URL(即,而不是传递参数)。那么,这是由搜索引擎排名吗?我是否必须阻止直接访问.php扩展名的文件?

+0

如果您可以提供代码,我们可以了解到底发生了什么。在这里粘贴你的.htaccess – 2012-02-04 07:22:56

+0

thanku。我曾用规则代替它 – 2012-02-04 07:27:24

+0

一种选择是上面的帖子更新:里面的index.php检查'$ _ SERVER [“REQUEST_URI”]'是搜索引擎友好的URL,如果没有,则发送301重定向到它。这将迫使浏览器使用该URL,而不需要隐藏或阻止php文件。 – andrewtweber 2012-02-04 08:18:05

回答

0

如果您有2个网址加载相同的网页,其中一个搜索引擎友好且另一个网址不友好,这对您的网站AFAIK无害。基本上,你只是想尽可能多地向搜索引擎公开,所以如果你需要提供一个平行的轨道,例如一个没有Javascript的工作正常的锚标签,因为该动作会带你到正确的位置(这是理想的一个机器人),但通常是由Javascript来管理的客户端(最标准的Web浏览器),那么你是金。

编辑:

每OP大约平行路径评论的问题..说我有一个链接,锚标签。

<a id="moxune_services" href="http://moxune.com/services" action="get" target="_self">Moxune Services</a> 

你可以看到,这是一个有效的链接(我会得到好SEO点从StackOverflow上,P但不管怎么说,说这是一个起伏JS驱动的网站的一部分,而不是刷新整个页面点击该链接时,我只是想有一个像其中DIV瓦特/ ID =“内容”存在由新鲜的内容被替换后,我有AJAX加载页面的子部分。该JS会是东西像这样(没有测试,这只是我的头顶)(一个jQuery解决方案以及):

// very crude jQuery example! 
$('#moxune_services').click(function() { 
    $.get($(this).attr('href'), function(sNewHtml) { 
    $('#content').replaceWith(sNewHtml); 
    }); 
}); 

现在你明白了,谷歌机器人可以通过HTML标签到达页面,没问题,但是寻找Web 2.0(TM)网站的客户将能够享受缺乏完整页面刷新的功能,因为他们有JS启用(并希望不使用IE 6:O)。

对此的一个术语是“优雅的退化”。

+0

感谢。我听到有人说它会给搜索引擎带来负面的声誉。所以你说是没有问题的。不是吗? – 2012-02-04 07:29:19

+0

不,没有问题。搜索引擎不会记录他们不了解的内容。这个想法是不是都创建了平行路径,如果你能避免它,但在JS重的网站,有时你必须处理瓦特/这一点,如果大部分内容是公开曝光。 – quickshiftin 2012-02-04 07:30:42

+0

感谢。你能否给我举一个你上面说的“平行路径”的例子? – 2012-02-04 07:33:00

0

quickshiftin就在这里。有没有一点隐藏的index.php

如果你一定要,但做到这一点:

RewriteRule ^index\.php.+$/[L,R=301] 

我没有测试这一点,所以它可能无法正常工作,但总的想法是重定向的index.php到/