0

为什么一个网址喜欢http://192.168.1.116/wordpress/wp-content/themes/bktf/frameworks/back-end/theme-options/options/fields/font/field_font.js.php?ver=1358535557

...结束服务/wordpress/wp-content/themes/bktf/frameworks/back-end/theme-options.php/options/fields/font/field_font.js.php(这也是 `$_SERVER['PHP_SELF'] 的内容)。

...在同一个父目录中同时具有目录名theme-options和文件名的情况下?theme-options.phpback-end

此外, 的内容$_SERVER['SCRIPT_NAME']/wordpress/wp-content/themes/bktf/frameworks/back-end/theme-options.php

为什么 Apache 或 PHP 模块会自动.php在目录名的末尾添加,只是因为有一个与 dir 相同的脚本???

注意:我在 Ubuntu 12LTS 服务器上使用 Apache 和 PHP 的默认配置,通过 tasksel 安装,然后使用https://launchpad.net/~ondrej/+archive/php5 PPA 升级到 PHP 5.4,以及所有配置文件与默认值/示例基本相同 - 它是一个基本的 LAMP 服务器,旨在在 VM 中运行以用于开发目的。

4

4 回答 4

1

PHP_SELF指的是服务器上正在运行的文件,而不是当前的 url。阅读 PHP $_SERVER 手册了解更多信息: http: //php.net/manual/en/reserved.variables.server.php

试试$_SERVER['REQUEST_URI']吧。这将在最后为您提供查询字符串。

于 2013-01-18T20:07:24.747 回答
0

PHP_SELF= 当前执行脚本的文件名,相对于文档根目录。 SCRIPT_NAME= 当前脚本的路径。

于 2013-01-18T20:10:46.463 回答
0

好的,我的问题有点令人困惑,所以我可以理解为什么每个人都回答了与我提出的问题不同的问题。

无论如何,在我的情况下发生的事情是没有theme-optionsdir(重命名并忘记了)并且 Apache 翻译了请求/[...]/theme-options/[...]/[...]/theme-options.php/[...]因为有一个theme-options.php script

我仍然不知道为什么带有所有默认配置的 Ubuntu LAMP 设置会做这种奇怪的路径杂耍,但我解决了我的直接问题。

于 2013-01-19T09:24:29.540 回答
0

由于启用了 MultiViews 选项,Apache 将请求转换为具有扩展名的某些文件:http ://httpd.apache.org/docs/2.2/mod/mod_negotiation.html#multiviews

于 2013-03-21T20:19:47.720 回答