关于$_SERVER['SCRIPT_URL']的来源问题
引自 http://hi.baidu.com/houdelei250/blog/item/c2d87710488d73c8a7ef3f13.html
$_SERVER['SCRIPT_URL']并不是标准的CGI/SSI环境变量,只有在请求应用了路径重写(apache的mod_rewrite)才会产生,官方文档上说:
此模块会跟踪两个额外的(非标准)CGI/SSI环境变量,SCRIPT_URL 和SCRIPT_URI 。他们包含了当前资源的逻辑网络视图,而标准CGI/SSI变量SCRIPT_NAME 和SCRIPT_FILENAME 包含的是物理系统视图。
注意:这些变量保持的是其最初被请求时的URI/URL,即在任何重写操作之前的URI/URL。其重要性在于他们是重写操作重写URL到物理路径名的原始依据。
示例
SCRIPT_NAME=/sw/lib/w3s/tree/global/u/rse/.www/index.html
SCRIPT_FILENAME=/u/rse/.www/index.html
SCRIPT_URL=/u/rse/
SCRIPT_URI=http://en1.engelschall.com/u/rse/
这里要特别注意的是你的重写规则必放在apache的*.conf配置中才会产生这个变量,写在目录中的.htaccess是不会产生的。
|
分享到:
相关推荐
$scriptName = $_SERVER['SCRIPT_NAME']; ``` #### 30. `$_SERVER['PHP_AUTH_USER']` 和 `$_SERVER['PHP_AUTH_PW']` 这两个变量分别返回通过HTTP认证机制认证的用户名和密码。当使用PHP的Apache模块时,它们会自动...
- **含义**:`$_SERVER["QUERY_STRING"]` 表示 URL 的查询字符串部分,即 URL 中 “?” 后面的部分。 - **实例**: - 对于 URL `http://www.example.com/?id=123&name=John`,`$_SERVER["QUERY_STRING"]` 的值为 ...
通过以上详细介绍,我们可以看到`$_SERVER`数组中包含了大量关于当前请求的重要信息。这些信息不仅可以帮助我们更好地理解用户是如何与我们的应用交互的,还可以在开发过程中起到重要的调试作用。熟练掌握这些参数...
21. **`$_SERVER["SCRIPT_NAME"]`**:调用当前脚本的URL路径。 22. **`$_SERVER["PHP_SELF"]`**:当前正在执行脚本的文件名。 23. **`$_SERVER["REQUEST_TIME"]`**:请求的时间戳。 #### 三、示例代码 为了更好地...
21. $_SERVER['HTTP_REFERER']:用户链接到当前页面的前一页面的URL地址,用于追踪用户来源。 22. $_SERVER['HTTP_USER_AGENT']:显示了浏览器的类型、操作系统、浏览器版本等信息。 23. $_SERVER['HTTPS']:如果...
服务器变量 $_SERVER 是 PHP 中的一个超全局数组,用于存储关于 headers、路径、脚本位置等服务器和执行环境的信息。该变量在每个脚本执行时自动被创建,无需开发者手动初始化。$_SERVER 数组中包含的元素很多,下面...
$_SERVER['SCRIPT_FILENAME'] - **作用**:获取当前执行脚本的绝对路径名。 - **应用场景**:用于处理文件路径问题。 - **示例**: ```php echo "脚本绝对路径: " . $_SERVER['SCRIPT_FILENAME']; ``` ##### ...
- `$_SERVER['SCRIPT_NAME']`:返回当前执行脚本的完整路径和文件名。 这些变量在开发过程中非常有用,例如,你可以根据 `$_SERVER['HTTP_HOST']` 来判断请求来自哪个域名,或者使用 `$_SERVER['HTTP_USER_AGENT']`...
- **`$_SERVER['QUERY_STRING']`**:包含URL中的查询字符串。 - **`$_SERVER['DOCUMENT_ROOT']`**:文档根目录的绝对路径。 - **`$_SERVER['HTTP_ACCEPT']`**:浏览器可接受的内容类型。 - **`$_SERVER['...
下面我们将详细探讨`$_SERVER`数组中各个键值的含义: 1. `PHP_SELF`: 返回当前执行脚本的文件名,包括脚本的路径,但不包含URL中的路径信息。它是相对服务器根目录的路径。 2. `argv`: 如果PHP被用作命令行脚本...
如果URL中包含非默认的端口(如8080而非80),需要使用`$_SERVER['SERVER_NAME']`和`$_SERVER['SERVER_PORT']`。例如: ```php echo 'http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER[...
`$_SERVER['HTTP_REFERER']`提供了访问当前页面之前用户所在页面的URL,即所谓的“来源”或“引荐”页面。这个信息在追踪用户路径、防止非法表单提交等方面很有用。然而,需要注意的是,`HTTP_REFERER`并非总是可用...
1. 检查Referer:通过PHP的$_SERVER全局变量获取HTTP头信息,尤其是'Referer'字段。如果Referer字段为空或者不包含预期的域名,可以阻止图片显示。 ```php $referer = $_SERVER['HTTP_REFERER']; $allowed_domains ...
isset ($_SESSION['login_ok'])`),则在session中设置`userurl`,存储当前请求的URI(`$_SERVER['REQUEST_URI']`),并使用JavaScript重定向用户到登录页面(`login.php`)。 ```php session_start(); if (!isset ...
3. **`$_SERVER["SCRIPT_FILENAME"]`**:此变量返回正在执行的脚本的完整绝对路径名。这对于确定脚本的确切位置特别有用。 4. **`$_SERVER["REMOTE_ADDR"]`**:此变量返回访问当前页面用户的IP地址。这对于统计网站...
例如,`$_SERVER`数组包含了关于请求和服务器的信息。通过`$_SERVER`数组,可以获取当前执行的脚本文件名(`$_SERVER['PHP_SELF']`),当前执行脚本所在的根目录(`$_SERVER['DOCUMENT_ROOT']`),以及当前执行脚本...
- `$_GET`:接收URL参数中GET方式提交的数据。 - `$_POST`:接收表单中POST方式提交的数据。 - `$_REQUEST`:接收GET和POST方式提交的所有数据。 - `$_SERVER`:包含服务器和执行环境的信息。 - `$_SESSION`:...
使用`$_REQUEST`可以同时处理GET和POST请求,但不推荐在安全性要求较高的场景下使用,因为它可能引发预期之外的数据来源问题。 其次,我们来谈谈URL编码。在HTTP协议中,非ASCII字符或某些特殊字符不能直接包含在...