Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    339

    Alcuni dubbi si Rewrite, con masterpage PHP

    Ciao, dopo aver letto varie guide ho ancora qualche piccolo dubbio. Qui di seguito espongo i miei dubbi vorrei che se possibile aver risposta per ogni dubbio

    DUBBIO 1 :

    Ho visto in tutte le guide che le regole vengo scritte cosi per esempio:

    Codice PHP:
    RewriteRule ^([0-9A-Za-z-_]+)/([0-9A-Za-z-]+)/$ ricerca.php?page=$1 [L,NC]


    1 .Noto che la parte di DX viene sempre indicata la pagina (in questo caso php), mi chiedevo non esiste un regola generale che va bene per tutti le pagine del sito?
    2. Ha senso che ci sia una regola generale per tutto il sito e in caso negativo per quale motivo non ha senso?
    3. Se ho un sito mettiamo con diverse sezioni HOME-CONTATTI-MAPPA-NEWS ecc.. devo creare delle RewriteRule per ogni pagina?

    DUBBIO 2:

    Mettiamo che il mio sito web sia composto dalla pagina Index.php che è la masterpage del sito, all'interno della pagina viene inclusa la pagina che vogliamo visualizzare esempio:

    Codice PHP:
    <?php $page_content = "page/".$_GET["page"].".php"; ?>
    <title> SITO TEST </title><body><header>
    <?php include('header.php');?></header>
    <?php if(isset($page_content)) include($page_content);?>
    <footer><?php include('footer.php');?></footer>
    </body></html>


    Mettiamo che ho HOME,CONTATTI,EMAIL come pagine ,
    CASO 1:

    io scrivo cosi nel URL : miosito/HOME/
    Lui recupera la pagina home.php e me la mostra all'interno della index.

    Il Rewrite è scritto cosi:Codice PHP:
    RewriteRule ^([0-9A-Za-z-_]+)/$ index.php?page=$1 [L,NC]


    CASO 2:

    Mettiamo ora che Contatti gli passo il cap da recuperare, la pagina sarebbe URL : miosito/CONTATTI/37025
    Nel modulo Rewrite ho le due seguenti righe
    Codice PHP:
    RewriteRule ^([0-9A-Za-z-_]+)/$ index.php?page=$1 [L,NC]
    RewriteRule ^([0-9A-Za-z-_]+)/([0-9A-Za-z-]+)/$ index.php?page=$1&cap=$2 [L,NC]


    La pagina contatti mi recupera il valore del cap.

    CASO 3.

    Mettiamo ora che chiamo la pagina EMAIL gli passo l'indirizzo email da recuperare, la pagina sarebbe URL:miosito/EMAIL/email@gk.it
    Nel modulo Rewrite ho le due seguenti righe
    Codice PHP:
    RewriteRule ^([0-9A-Za-z-_]+)/$ index.php?page=$1 [L,NC]
    RewriteRule ^([0-9A-Za-z-_]+)/([0-9A-Za-z-]+)/$ index.php?page=$1&cap=$2 [L,NC]
    RewriteRule ^([0-9A-Za-z-_]+)/([0-9A-Za-z-]+)/$ index.php?page=$1&email=$2 [L,NC]


    Facendo cosi però lui si ferma alla prima valida per cui non mi recupera email ma cap.

    DUBBIO:

    Avendo una master page come posso gestire un caso cosi?
    Devo utilizzare i RewriteCond dove indico che queste regole sono valide solo per una determinata pagina?


    Spero di essere stato chiaro
    Grazie a tutti per il vostro aiuto.

  2. #2
    DUBBIO 1:

    1) esiste limitatamente a come decidi di creare le uri
    2) non gliene frega niente a nessuno di quanti url rewrite ci sono e come sono, basta che funzionino e siano facili per il sistemista di turno mantenerli
    3) dipende da come crei il sistema di url e di url rewrite

    DUBBIO 2:

    come vedi è una cosa impossibile da gestire e poi la regular expression per "contatti" ed "email" è la stessa, quindi la pagina email non la prenderai mai.

    SOLUZIONE PIU SEMPLICE:

    - front controller index.php (ovvero quella che chiami masterpage)
    - per tutte le url fai un rewrite del tipo

    codice:
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php
    e in index.php ti parsi la url richiesta:
    Codice PHP:
    <?php
    $path 
    trim(parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH), "/");

    echo 
    "path is $path";
    ?>
    e scegli un pò te il resto di cosa fare o meno. Un esempio: http://www.sitepoint.com/front-controller-pattern-1/
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    339
    Quote Originariamente inviata da Santino83_02 Visualizza il messaggio
    DUBBIO 1:

    SOLUZIONE PIU SEMPLICE:

    - front controller index.php (ovvero quella che chiami masterpage)
    - per tutte le url fai un rewrite del tipo

    codice:
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php
    e in index.php ti parsi la url richiesta:
    Codice PHP:
    <?php
    $path 
    trim(parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH), "/");

    echo 
    "path is $path";
    ?>
    e scegli un pò te il resto di cosa fare o meno. Un esempio: http://www.sitepoint.com/front-controller-pattern-1/
    Ma facendo cosi non mi sembra che riesco poi a richiamare gli url cosi
    miosito/ricerca/verona/nuove/

    Che in pratica sarebbe http://www.miosito.com/ricerca.php?c...ipologia=nuove

    Ho sbaglio?
    Ci sono 10 categorie di persone al mondo: quelle che capiscono
    il sistema binario e quelle che non lo capiscono.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.