PHP: $ _GET [''] superglobal не извлекает значение из URL после очистки URL с помощью .htaccess - PullRequest
0 голосов
/ 09 октября 2018

У меня проблема с $ _GET [''].До применения правил .htaccess к URL все работало нормально, когда я очищал URL с помощью файла .htaccess, теперь echo $ _GET ['id'] выдает мне эту ошибку (Примечание: неопределенный индекс: id в C: \wamp64 \ www \ Test \ show.php в строке 3) .Новый чистый URL работает без параметров, но когда я пытался отправить параметр, он не отправляет идентификатор.Я не знаю, что делать.Я искал эту проблему более 10 часов, но безрезультатно.

содержимое моего файла .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^show/([0-9]+)/([0-9a-zA-Z_-]+) show.php?id=$1&name=$2 [NC,L]

страница show.php, на которой я хочу отобразить значения из URL

<?php
$myvar = $_GET['id']."<br>";
$myvar1 = $_GET['name'];
echo $myvar;
echo $myvar1;
?>

этот URL не имеет проблем (http://localhost/Test/show.php?id=120&name=ahmad)

**, но в этом URL (http://localhost/Test/show/120/ahmad) эта ошибка возникает **

Примечание: неопределенный индекс: идентификатор в C: \ wamp64 \ www \ Test \ show.php в строке 3 Примечание: неопределенный индекс: имя в C: \ wamp64 \ www \ Test \ show.php в строке 4

Я не комментирую mod_rewrite.os в файле httpd.conf как будет.

Пожалуйста, помогите мне, спасибо.

1 Ответ

0 голосов
/ 09 октября 2018

Измените RewriteCond:

RewriteCond %{REQUEST_FILENAME} -f

на

RewriteCond %{REQUEST_FILENAME} !-f

Второй означает, что путь НЕ является файлом на сервере, так что это то, что вам нужно.Я предполагаю, что первый означает, только если путь является файлом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...