我的 PHP 应用程序无法运行,因为 $_SERVER['REQUEST_URI'] 返回脚本的完整 url 而不是相对路径。
我的环境:
Windows 7 64 位。
XAMPP 版本 1.8.2
PHP 版本 5.4.16
Apache 版本 Apache/2.4.4 (Win32) OpenSSL/0.9.8y PHP/5.4.16
我的虚拟主机配置:
<VirtualHost *:80>
DocumentRoot "D:/HTDOCS/ivankristianto"
ServerName www.ivankristianto.local
UseCanonicalName Off
<Directory "D:/HTDOCS/ivankristianto">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Require all granted
</Directory>
</VirtualHost>
我创建了一个基本脚本来测试 $_SERVER 内容:
echo '$_SERVER[\'HTTP_HOST\'] : ' . $_SERVER['HTTP_HOST'];
echo '<br/>' . '$_SERVER[\'PHP_SELF\'] : ' . $_SERVER['PHP_SELF'];
echo '<br/>' . '$_SERVER[\'REQUEST_URI\'] : ' . $_SERVER['REQUEST_URI'];
结果如下:
// URL: http://localhost/ivankristianto/request.php
$_SERVER['HTTP_HOST'] : localhost
$_SERVER['PHP_SELF'] : /ivankristianto/request.php
$_SERVER['REQUEST_URI'] : /ivankristianto/request.php //This is correct
和
// URL: http://www.ivankristianto.local/request.php
$_SERVER['HTTP_HOST'] : www.ivankristianto.local
$_SERVER['PHP_SELF'] : /request.php
$_SERVER['REQUEST_URI'] : http://www.ivankristianto.local/request.php //This is wrong
我没有使用任何代理,我所做的只是将它设置在我的 /etc/hosts 中。
我花了几个小时找出为什么会发生这种情况,并通过谷歌和这个网站进行搜索,但找不到任何线索。
你能指出我出了什么问题吗?
谢谢。
伊万