【问题标题】:How to create specific URLs for a search term [closed]如何为搜索词创建特定 URL [关闭]
【发布时间】:2013-04-04 17:05:52
【问题描述】:

我有一个简单的网站设置:两个 PHP 页面,第一个只是一个搜索框,第二个显示基于用户输入的搜索框的信息。我怎样才能让第二页有一个基于搜索的唯一 URL?像 website.com/query=query+goes+here 这样的东西,而不是所有的 URL 都是同一个 website.com/results.php?

【问题讨论】:

  • 了解更多关于 .htaccess
  • 这里有什么更具体的吗?
  • 您可以在 1 页上执行此操作,只需查看 $_GET['query'] isset,如果未设置,则显示普通搜索框,如果已设置,则显示结果.
  • 我知道我可以在一页上做,但由于种种原因,我不想这样做。
  • 我可以告诉您如何以与 wordpress 等博客应用程序相同的方式进行操作。这很简单,但涉及到一个数据库。 – Kev 刚刚编辑

标签: php html .htaccess mod-rewrite


【解决方案1】:

如果我正确理解了这个问题,那就很简单了。只需使用获取表单操作:

<form action="results.php">
Search: <input type="text" name="search"><br>
<input type="submit" value="Submit">
</form>

然后通过对 results.php 的 $_GET 请求获取该变量:

<?php
$search_term = $_GET['search'];
//do SQL query or whatever else you need to do here
?>

【讨论】:

  • 它不会生成像“website.com/query=query+goes+here”这样的url
  • 是的,我不确定在这里使用 $_GET 对我有什么好处...
【解决方案2】:

你可以试试这样的:

.htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On

    <IfModule mod_vhost_alias.c>
        RewriteBase /
    </IfModule>

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ results.php?query=$1 [L,QSA]
</IfModule>

【讨论】:

    【解决方案3】:

    你可以用apache的htacessmodrewrite来创建。

    编辑:

    只需检查以下链接即可生成动态 URL。它可能会解决您的问题:

    URL Generation

    【讨论】:

    • 可以肯定的是,您是说使用 GET 样式 url 的方式是使用 url-rewriting?
    • 在获取 url 中将是 pageName.php?Fildname=value&fieldName=value 而不是 "website.com/query=query+goes+here"
    • 还有一些微框架可以为你处理这个问题......即 silex。所以你可以做一个http get to:query=query+goes+here,它会为你处理重定向,你只需要解析它。不一定更好,但是如果您想避免 url 重写,则可以选择...
    • 所以为了获得唯一的 URL,我将不得不涉足 .htaccess?我认为没有其他方法可以做到这一点。那么,所有具有唯一搜索 URL 的站点都在使用 .htaccess 进行操作吗? (请原谅我的无知。对这些东西不熟悉。)
    • @SureshKamrushi - 谢谢伙计。 :) 我误读/理解了这个问题。
    猜你喜欢
    • 1970-01-01
    • 2022-12-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 2021-10-27
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    相关资源
    最近更新 更多