我不知道如何解释这一点,但我会尽力解释它。
我正在用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中的"搜索"部分并读取它之后的内容。