htaccess URL не найден

У меня есть файл .htaccess и код в нем:

#command_players
RewriteRule ^command_players/([0-9]+)?$ command_players.php?id=$1 [NC,L]

Моя страница входа в систему должна перенаправляться на страницу command_players.php, если введенные пользователем данные верны:

if (password_verify($_POST['pass'], $results['pass'])) {
    $_SESSION['command']= 'ok';
    $_SESSION['id'] = $results['id'];
    redirect("command_players/$results[id]/");
}

Но я получаю ошибку вроде:

Запрашиваемый URL /site/command_players/18/ не найден на этом сервере,

когда /site/command_players.php работает.

Я не хорош в htaccess, что я делаю не так?

2 ответа

Проблема была о папке, и я пропускаю '/' при перенаправлении входа в систему. Теперь это работает:

#command_players
RewriteRule ^command_players/([0-9]+)/?$ site/command_players.php?id=$1 [NC,L]



 if (password_verify($_POST['pass'], $results['pass'])) {
                                $_SESSION['command']= 'ok';
                                $_SESSION['id'] = $results['id'];
                                //redirect("command/list.php/$results[id]/");
                                redirect("/command_players/{$results['id']}/");
                            }

Вы должны включить косую черту (/) в вашем регулярном выражении в файле htaccess, как показано ниже.

? означает "ноль или один из предыдущих", так /? означает "без косых черт или один", что соответствует шаблону, который вы описали.

#command_players
RewriteRule ^command_players/([0-9]+)/?$ command_players.php?id=$1 [NC,L]

Полезные ресурсы

Другие вопросы по тегам