【问题标题】:Concrete 5 search results page url具体5个搜索结果页面url
【发布时间】:2012-08-10 03:40:12
【问题描述】:

具体5个搜索结果页面的url包含一些参数。如何删除该参数并使 url 用户友好

【问题讨论】:

    标签: concrete5


    【解决方案1】:

    在 apache 服务器上,我建议您使用 mod_rewrite 模块来使用 RewriteEngine。 使用此模块,您可以为某些内部 URL 指定别名(当然也可以使用参数)。您也可以为此使用 RegEx。

    RewriteEngine on Wikipedia

    mod_rewrite tutorial

    【讨论】:

      【解决方案2】:

      简短的回答:这可能不值得麻烦。

      长答案... 我猜您在使用搜索块时会看到三个查询参数:

      1. 查询
      2. search_paths[]
      3. 提交

      第一个参数是进行搜索所必需的,但可以删除其他两个参数。当我构建concrete5主题时,我通常“硬编码”搜索表单的html,以便我可以控制发送哪些参数(基本上,不要为提交按钮提供“名称”,也不包括“search_paths”隐藏字段)。

      不过,“查询”参数并不容易摆脱。问题在于,对于搜索,您应该在 URL 中有一个类似的参数。您可以通过使用 javascript 来解决此问题 -- 提交搜索表单时,使用一些 jquery 来重写请求,以便将该参数放在 URL 的末尾(例如,http://example.com/search?query=test 变为 http://example.com/search/test)。然后,正如@tuxtimo 建议的那样,您将重写规则添加到您的 .htaccess 文件中,以获取 URL 的最后一部分并将其视为系统期望的 ?query 参数。但是,如果用户没有启用 javascript,这将不起作用(因此可能也不适用于 Googlebot,这意味着这不会真正为您服务任何 SEO 目的——我进一步认为这是您的真正原因先问这个问题)。

      此外,如果您在显示搜索结果的页面添加另一个页面,您将遇到很多麻烦(因为您有重写规则处理顶部之后的所有内容-级别搜索页面路径作为搜索参数——因此您永远无法真正到达该路径下方存在的地址)。

      所以我只需要创建一个干净的搜索表单,它只发送 ?query 参数并保留它——我认为这些表单实际上并没有比 /search-term 更不友好。

      【讨论】:

        猜你喜欢
        • 2016-04-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-20
        • 1970-01-01
        相关资源
        最近更新 更多