How to configure . htaccess and PHP to use user-friendly URL with parameters

Asked

Viewed 19 times

-2

I set up my .htaccess to use the URL Amigáveis on the site I’m developing, but I’m having a hard time passing and receiving parameters, by the rule that defines everything that is entered in the URL is going through my index, when I don’t have parameters the page being called is displayed correctly but when I try to pass a parameters to a page it falls in the exception of mine IF and goes to the page 404 because the script understands that it is a page and that page does not exist.

For example:

My . htaccess:

RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
Options -Indexes

RewriteRule ^(.*)$ index.php?url=$1 [NC]
#RewriteRule ^([^/]+)/?$ projeto.php?id=$1 [L,QSA]

By calling the page about us

<a target="_blank" href="sobre-nos">NOSSA HISTÓRIA</a>

In my index.php the script is like this:

$rotaURL = (isset($_GET['url'])) ? $_GET['url']:'home';
$rotaURL = array_filter(explode('/', $rotaURL));
$pagina = $rotaURL[0].'.php';
            
if(is_file($pagina)){
    
    include("inc-topbar.php");
    include("inc-cabecalho.php");
    
    // INCLUI SLIDER SE FOR A PÁGINA PRINCIPAL
    if ($pagina == 'home.php') {
        include("inc-slider.php");  
    }
    
    include($pagina);
    
} else {
    
    include("inc-topbar.php");
    include("inc-cabecalho.php");   
    include '404.php';
    
}

The About Us page is displayed correctly, but if I try to call the Water Eye Project page in this way, it is not recognized and falls into the 404.

<a target="_blank" href="projeto/1">PROJETO OLHO D´AGUA</a>

The second rule of my . htaccess is like this:

RewriteRule ^([^/]+)/?$ projeto.php?id=$1 [L,QSA]

I also tried to retrieve the variables for verification, that way:

if (isset($_GET['id')) {
    // AÇÃO DE ACORDO COM O PARÂMETRO
} 

I understand that the rule is configured incorrectly, but I have tried many alternatives that I found in my research and all did not work.

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.