我看过其他答案,我明白了$_SERVER[\'REQUEST_URI\']
通常是推荐的,并且是获取当前页面URI的公认答案$_SERVER[\'HTTP_HOST\']
.
我查看了WP源代码,它在那里也被广泛使用。
但我发现一些关于它在IIS上不起作用的争议。也许这只是过去的一个问题?我甚至试着在我的电脑上安装IIS来检查它,但我无法配置它,只是为了证实这一点,这似乎有些过头了。
它似乎是唯一包含我想要的信息的服务器变量:
/窗格玻璃塞/nggallery/tags/dark-colors/
突出显示的示例部分是通过NextGEN Gallery 2添加的,只能通过$_SERVER[\'REQUEST_URI\']
, 没有别的了。以前,它可以使用get\\u query\\u var访问,现在不再使用了。
如果$_SERVER[\'REQUEST_URI\']
未设置,通过手动设置并基于PHP_SELF
和QUERY_STRING
带来不等价的结果。
那么依靠它安全吗$_SERVER[\'REQUEST_URI\']
是否始终可用于WP安装?我想这是因为WP核心代码使用它,但我不得不问。
最合适的回答,由SO网友:fuxia 整理而成
$_SERVER[\'REQUEST_URI\']
在WordPress中不会为空,因为它已填充wp_fix_server_vars()
(文件wp-includes/load.php
).
此函数在中调用wp-settings.php
在加载任何插件之前。所以你可以使用它。
但总是逃避价值。它是全局的,可以由任何其他代码更改,因此您不能信任它的值。
另一种情况是根据访问值
filter_input(INPUT_SERVER, \'REQUEST_URI\');
WordPress的写访问不会影响该值,因为
filter_input()
总是取原始值。因此,虽然这是一种更现代、更干净的方法,但在某些情况下可能会失败。另请参见
this thread on Stack Overflow.