【问题标题】:Changing your url to do something else更改您的网址以执行其他操作
【发布时间】:2014-08-14 07:52:55
【问题描述】:

我不知道如何解释,但我会尽力解释。

我正在用 php 开发我的网站。所以我在 Search 文件夹中创建了一个 index.php 文件

所以如果我必须搜索任何像“好”这样的词,它的地址是

http://127.0.0.1/Website/search/?search=dh

现在如果我尝试访问

http://127.0.0.1/Website/search/

我的页面出现错误

Undefined index: search

因为它无法找到我用来获取输入类型值的 $_GET["search"] 变量。

有什么办法可以让这个网址

http://127.0.0.1/Website/search/something

被解释为

http://127.0.0.1/Website/search/?search=something

【问题讨论】:

标签: php apache url


【解决方案1】:
Undefined index: search

“因为找不到我的$_GET[“search”]”:然后检查变量是否存在:

if (isset($_GET['search'])) {
    // use $_GET['search'];
}

对于第二个问题,您可以使用带有 htaccess 的 URL 重写来获得类似“mysite.com/Website/search/something”的 URL。 在 SO 或 Google 上搜索这些术语,您会发现很多很好的教程。

【讨论】:

  • 谢谢..我想我现在可以做到了:)
【解决方案2】:

第一个问题:使用isset()检查$_GET['search']是否在使用前定义。

第二个问题:使用带有规则的.htaccess 文件

RewriteRule ^/search/(.+)$ /search/?search=$1 [L,R] 

【讨论】:

    【解决方案3】:

    你得到了:

    Undefined index: search 
    

    错误,因为您没有检查变量是否存在。

    要做到这一点,你可以在下面做一个简单的 if 语句:

    if(isset($_GET['search'])) {
        // search index exists
    }
    

    要更改您的 URL,您需要使用 URL 重写,这是一篇很好的文章:http://www.addedbytes.com/articles/for-beginners/url-rewriting-for-beginners/

    【讨论】:

      【解决方案4】:

      你应该在 apache 中使用重写规则:http://httpd.apache.org/docs/2.0/misc/rewriteguide.html 比在您的脚本中删除部分代码阅读“搜索”参数并阅读 $_SERVER['REQUEST_URI'] ,解析它以通过 URL 中的“搜索”部分并阅读它之后的内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-03
        • 1970-01-01
        • 2020-06-24
        • 1970-01-01
        • 1970-01-01
        • 2018-01-07
        • 2016-12-06
        • 2019-06-15
        相关资源
        最近更新 更多