PHP7.1路由问题

PHP7.1路由问题,php,.htaccess,configuration,ubuntu-16.04,apache2.4,Php,.htaccess,Configuration,Ubuntu 16.04,Apache2.4,我是apache2和php新手,因为几天来我一直在试图找出代码或服务器配置的问题。 当我运行一条简单的线路时,例如: $uri = $_REQUEST['URI']; echo("$uri"); 我收到一个错误: Notice: Undefined index: URI in /var/www/html/... 我需要$_请求['URI']来构建我自己的路由器。 htaccess文件被添加到项目中,所以apache应该知道我将覆盖路由。顺便说一句,它看起来像: Options +Follow

我是apache2和php新手,因为几天来我一直在试图找出代码或服务器配置的问题。 当我运行一条简单的线路时,例如:

$uri = $_REQUEST['URI'];
echo("$uri");
我收到一个错误:

Notice: Undefined index: URI in /var/www/html/...
我需要$_请求['URI']来构建我自己的路由器。 htaccess文件被添加到项目中,所以apache应该知道我将覆盖路由。顺便说一句,它看起来像:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [NC,L]
当然,我从web浏览器运行脚本,所以应该定义$\u请求['URI']。 问题出现在: PHP 7.1+Apache2.4+Ubuntu16.04


有人能帮忙吗?

正如@EduardoEscobar所说,你想做的是:

$uri = $_SERVER['REQUEST_URI'];
echo("$uri");

在.htaccess文件中,只需添加以下内容

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L]
</IfModule>

重新启动发动机
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^(.*)$/index.php?url=$1[QSA,L]
然后,在主index.php文件中,只需将url捕获为

<?php echo $_GET['url']; ?>

所以如果用户打开一个像
example.com/test

然后输出将是
test

URI是一个querystring变量,对吗?即。在任何情况下,我几乎可以肯定您希望将其用作重写规则:
RewriteRule^(.*)$index.php?URI=%{REQUEST_URI}[NC,QSA,L]
它不起作用。这样做的目的是在有人在浏览器中键入时获得正确的URL,即example.com/index或example.com/first_子页面,因此$_请求['URI']应该返回:example.com/index或example.com/first_子页面取决于用户将键入的URL。这是网页路由最简单的情况。你们重写的规则是指通过URL传递参数,这不是我试图做的。它也不起作用,结果和Eduardo Escobar和Croise之前给出的答案相同。我仍然收到信息:注意:未定义的索引:URI在/var/www/html中…它应该是url而不是URI,请尝试
print($\u-GET)要查看请求中的内容,请查看依赖项$_GET参数命名错误。现在它工作了!非常感谢兄弟:)