【问题标题】:Codeigniter form action with slashes instead of normal GETs?带有斜杠而不是普通 GET 的 Codeigniter 表单操作?
【发布时间】:2010-04-12 20:52:08
【问题描述】:

嘿,这是看起来很明显的问题之一,我可能会觉得自己很愚蠢,但这里是:

我正在做一个带有搜索功能的 CodeIgniter 网站。想想 Google 类型的输入,您可以在其中搜索“白色哈士奇”。我有一个搜索结果页面,它采用 URI (MySite.com/dogs/white huskies),并采用第三部分,并对该词执行搜索。我希望在 URI 中完成此操作,而不是通过 POST,以便我的用户可以为结果添加书签。

我遇到的问题是如何将搜索按钮定向到 Mysite.com/dogs/输入中的内容。如何将输入部分中的内容放入锚点 href 中?我知道我可以用 javascript 做到这一点,但我听说强迫人们为这么小的事情使用 javascript 是不好的做法。

感谢您的帮助!

【问题讨论】:

    标签: forms codeigniter anchor


    【解决方案1】:

    阅读:Form redirect to URL containing query term? - pure HTML or Django

    (询问 Django,但答案也适合这里)

    【讨论】:

      【解决方案2】:

      您可以有一个中间 POST 页面,该页面收集表单输入并将它们连接成一个有效的 URL,然后您可以重定向到该 URL。但是,我不确定这是好还是坏的 SEO 实践,但是如果没有一些 Javascript 干预,我看不到另一种方法。

      也许您可以查看中间 POST 页面,该页面获取的值会将您重定向到 /search/dog/white/huskies,但也有一个 Javascript 等效项,可以在表单提交时即时执行此操作并执行一个窗口.location 刷新到相同的 /search/dog/white/huskies?

      只值我的 2 便士 ;)

      【讨论】:

        【解决方案3】:

        可以让 CodeIgniter 安全地处理 $_GET 变量和 URI 段。

        我过去使用的一种解决方法是使用 POST 收集搜索词,解析所需的 URL 以用于 URI 段,然后将您的用户重定向到此页面。

        $url = 'mysite.com/search/' . urlencode($_POST['query']);
        
        redirect($url);
        

        这不应该影响 SEO,但是像搜索结果的 URL 这样的东西无论如何都不太可能对 SEO 产生任何影响。干净的 URL 仅用于永久内容。如果您要在页面上显示搜索词,请记住使用xss_clean(),以前见过一些人犯过这个致命错误。

        【讨论】:

          猜你喜欢
          • 2020-11-15
          • 2022-01-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-01-22
          • 1970-01-01
          • 2019-01-28
          相关资源
          最近更新 更多