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


PHP: Two basic questions about URL

问题1

www.example.com/?do=blah

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

问题2

www.example.com/news.php?等等

这个链接并没有显示与news.php相同的结果,但我们不应该使用news.php&blah=例如值?绳子在干什么?代表GET变量的缩短版本还是完全不同的东西?

问题1

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

问题2

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

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

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

您可以使用.htaccess为两个'em配置URL重写。

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

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

DirectoryIndex index.html index.php ...etc

并将其更改为:

DirectoryIndex your_preferred_default_page.php

对于第二个问题,问号不是简写,它标志着查询字符串的开始。。。它被用作将进一步的字符串作为GET键和值处理的提示。