PHP:关于URL的两个基本问题

时间:2012-02-16 03:24:18

标签: php

问题1

www.example.com/的?DO =嗒嗒

如果没有index.php,你如何让它工作?有什么例子吗?

问题2

www.example.com/news.php?blah

这个链接与news.php没有显示相同的结果,但是我们不应该使用news.php& blah = value吗?后面的字符串是什么?代表?缩短版的GET变量还是完全不同的东西?

3 个答案:

答案 0 :(得分:1)

问题1

只要index.php是您的默认设置并且您在根文件夹中显示它,那么您只需要www.domain.com/?querystring=value

问题2

?是查询字符串参数的开头。它应该用于第一个。

&用于之后的每个查询字符串参数。

index.php?querystring1=value&querystring2=value&querystring3=value等等。

答案 1 :(得分:1)

您可以使用.htaccess为'em。

配置网址重写
RewriteEngine On
#for question 1
RewriteRule ^(.*)$ index.php/$1 [L]
#another example for question 2
RewriteRule ^news.php\?(.*)$ news.php?blah=$1 [L]

第一个示例将捕获所有内容并将用户重定向到index.php文件。因此,如果用户尝试访问domain.tld/abc,他们实际上将访问domain.tld/index.php/abc

至于第二个例子,它将获取查询字符串中的所有内容(可能需要更好的Regex)。基本上,它会将news.php?value变为news.php?blah=value

答案 2 :(得分:0)

我不完全理解你的第二个问题,但你的第一个问题的答案是你需要在你的网络服务器上指定一个不同的默认目录索引。假设您正在运行Apache,请在httpd.conf文件中找到此行:

DirectoryIndex index.html index.php ...etc

并将其更改为:

DirectoryIndex your_preferred_default_page.php

对于你的第二个问题,问号不是简写,它标志着查询字符串的开头......它被用作将其他字符串视为GET键和值的提示。