【发布时间】:2016-11-16 01:08:31
【问题描述】:
我有一个使用 GET 请求的搜索表单。当我按 Enter 时,该 url 像往常一样对 SEO 不友好,有没有办法让它在输入时显示 SEO 友好的 url?
例如。
GET 请求http://someurl.com?a=search&query=what+are+you+looking+for
SEO URL 应该是http://someurl.com/search/what+are+you+looking+for
我已经创建了规则
RewriteRule ^search/(\w+) index.php?a=search&query=$1
在我的 .htaccess 中,当我在地址栏中手动键入 SEO Url 时,它会起作用。所以我想这只是确保当我在搜索字段中输入时,它会加载 SEO Url 而不是另一个。
【问题讨论】:
-
您必须使用 Javascript 来构建您想要的 URL 并以这种方式“提交”您的搜索表单,或者您从您的服务器发出重定向到所需的 URL。
-
在这种情况下使用 GET 变量没有任何问题;它比将查询添加到 URL 更“正确”。另外,您到底为什么要对搜索结果页面进行 SEO?搜索引擎可能会不对搜索结果页面进行索引/排名。每次您访问它们时,它们都包含不同的内容,因此它们对搜索引擎来说将被视为无用。
.../search?query=abc之类的就可以了。 -
@SverriM.Olsen 说得通!但是,如果我想与某人共享搜索链接,那么所有这些字符串都违背了 SEO 友好 url 的目的。
-
SEO 与链接共享关系不大。搜索结果页面会根据网站上的内容而变化,因此共享它可能不是很有用。您通常会共享指向感兴趣内容的直接链接。在 URL 方面,SEO 大约是making the URL canonical,因此搜索引擎可以更好地依赖它们。
-
正确,但这不是搜索页面结果。这只是根据关键字从数据库中提取数据。所以我想给一个关键字添加书签,例如something.com/search/keyword,这样当我执行搜索时,我就不必再次输入关键字,只需粘贴链接即可获得结果。
标签: php .htaccess url url-rewriting seo