Я новичок в 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
Может ли кто-нибудь помочь?
В вашем .htaccess файле просто добавьте это
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L]
</IfModule>
Тогда в вашем основном файле index.php просто поймайте URL как
<?php echo $_GET['url']; ?>
Так что, если пользователь откроет страницу, как example.com/test
тогда вывод будет test
Как говорит @EduardoEscobar, вы пытаетесь сделать следующее:
$uri = $_SERVER['REQUEST_URI'];
echo("$uri");