【问题标题】:Create SEO Friendly URLs from _GET query从 _GET 查询创建 SEO 友好的 URL
【发布时间】: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


【解决方案1】:

您必须将您的原始 uri 重定向到新的 uri,在现有规则之前添加以下内容:

RewriteEngine on
RewriteCond %{THE_REQUEST} /(?:index\.php)?\?a=search&query=(.+)\sHTTP [NC]
RewriteRule ^ /search/%1? [NE,L,R]

【讨论】:

  • thanxx 根据要求更改了 url,但我无法选择变量。就像在 $a 和 $q 变量中一样。还有一种方法可以在本地使用吗?除非我上传到服务器,否则我做不到
  • 对不起,I can't pick The variable 是什么意思?
  • 就像在 $a 和 $query 变量中一样。如何检索搜索的内容。它只是更改了 URL,但无法检索变量。
  • 你如何检索获取变量?
  • 哦,抱歉,我没有看到“在前面添加以下内容”,我只是删除了原始内容并粘贴了您的内容。现在可以了。惊人的。比xxx
【解决方案2】:

您可以在 .htaccess 中使用它:

RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)$ /?a=$1&query=$2 [L]

这将为您留下 URL:

http://someurl.com/search/what+are+you+looking+for

【讨论】:

    【解决方案3】:

    我在路上做这个:)

    这是搜索表单

      <form method="post">
         <input type="text" name="search" placeholder="search"/>
      </form>
    

    表格前

    if(isset($_POST['search'])){
    echo '<script>window.location = "www.domain.com/search/'.$_POST['search'].'"</script>';
    }
    

    .htaccess

    RewriteEngine on
    RewriteRule ^search/([^/]*)$ index.php?page=search&search=$1 [NC,L]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-19
      • 2014-12-04
      • 2011-06-11
      • 2017-04-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-05
      • 2014-07-14
      相关资源
      最近更新 更多