3
respostas

Não consigo usar a URL amigável.

Olá, alguém poderia me ajudar? ao tentar utilizar as URL's amigáveis não surte nenhum efeito no PHP, pelo XAMPP não consegui, então iniciei o servidor PHP normal, mas ao utilizar /listar-cursos ele só identifica o arquivo index.php, alguém poderia me auxiliar?

PHP: PHP 8.1.1 (cli) (built: Dec 15 2021 10:31:43) (ZTS Visual C++ 2019 x64) Copyright (c) The PHP Group Zend Engine v4.1.1, Copyright (c) Zend Technologies

Código:

<?php
echo "<pre>";
echo $_SERVER['SCRIPT_NAME'];
//var_dump($_SERVER);

if ($_SERVER['SCRIPT_NAME'] === '/listar-cursos') :
    require 'listar-cursos.php';
else :
    echo "404";
endif;

Saída:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Saída do servidor: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

3 respostas

Bom dia.

Você esta utilizando o:

$_SERVER['SCRIPT_NAME']

Este SCRIPT_NAME traz o caminho do script atual, e não do que esta tentando acessar, o request no caso. Onde esta $SERVER['SCRIPTNAME'] troca para:

$_SERVER['PATH_INFO']

Ficando:

if ($_SERVER['PATH_INFO'] === '/listar-cursos') :
    require 'listar-cursos.php';
else :
    echo "404";
endif;

Oi Márcio, na versão do PHP 8.1 esse PATH_INFO não é comando válido, e ainda sim, quando coloco /algumaCoisa ele procura um diretório, não fica no index.php

Entendi, uma outra forma que poderia contornar é usando o REQUEST_URI, ficando:

$caminho = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : $_SERVER['REQUEST_URI'];