【发布时间】:2018-03-15 00:33:08
【问题描述】:
我是 apache2 和 php 的新手,因为几天以来我试图找出我的代码或服务器配置有什么问题。 当我运行一条简单的线路时,例如:
$uri = $_REQUEST['URI'];
echo("$uri");
我收到一个错误:
Notice: Undefined index: URI in /var/www/html/...
我需要 $_REQUEST['URI'] 来构建我自己的路由器。 文件 .htaccess 已添加到项目中,因此 apache 应该知道我将覆盖路由。顺便说一句,它看起来像:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [NC,L]
当然,我是从网络浏览器运行脚本的,所以应该定义 $_REQUEST['URI']。 问题出现在: PHP 7.1 + Apache2.4 + Ubuntu16.04
有人可以帮忙吗?
【问题讨论】:
-
URI 是一个查询字符串变量,对吧?即example.com/?URI=something。无论如何,我几乎可以肯定你想用它作为重写规则:
RewriteRule ^(.*)$ index.php?URI=%{REQUEST_URI} [NC,QSA,L] -
它不起作用。目的是在有人在浏览器中键入时获得正确的 URL,即 example.com/index 或 example.com/first_subpage,因此 $_REQUEST['URI'] 应该返回:example.com/index 或 example.com/first_subpage 取决于用户将键入的 URL。这是最简单的网页路由案例。您重写的规则是指通过 URL 传递参数,这不是我尝试做的。
标签: php .htaccess configuration ubuntu-16.04 apache2.4