更改您的网址以执行其他操作


Changing your url to do something else

我不知道如何解释这一点,但我会尽力解释它。

我正在用php开发我的网站。所以我在搜索文件夹中创建了一个索引.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
Undefined index: search

"因为它找不到我的 $_GET["搜索"]":然后检查变量是否存在:

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

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

对于第一个问题:使用isset()检查是否定义了$_GET['search'],然后再使用它。

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

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

你得到的是:

Undefined index: search 

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

为此,您可以执行一个简单的if语句,如下所示:

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

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

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