• User Newbie

    Allora per essere più chiaro, la struttura del sito è così: ho un index con all'interno il corpo del sito che viene incluso in php in base alla get che viene passata in indirizzo, questa get viene controllata da un file che si chiama controller.php che in base al parametro assegna la sezione di pagina che mi interessa.
    Detto questo io 7 categorie di articoli nel sito che prelevo dal db, li prelevo come id quindi poi estrapolo dal db il nome della categoria corrispondente all'ip

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d  RewriteRule ^/([^/]+)/([^/]+)/?$ /index.php?sezione=$1&cat=$2 
    

    facendo così come faccio ad assegnare il nome della categoria?


  • User Newbie

    @erise said:

    Dopo lunghe litigate l'htaccess ho trovato a mio avviso un metodo piu flessibile in cui posso evitare anche le url duplicate.
    In pratica l'htaccess resta sempre lo stesso x tutte le strutture e i siti e non fa altro che dire: qualsiasi chiamata trovi, a meno che non sia un file che esiste, girala a index.php?request=xyz dove xyz è qualsiasi richiesta io faccia. A quel punto gestisco tutto da php, mi sono realizzato una classe che gestisce tutti i 301 e i 404 e indirizza il lavoro a dei sottomoduli da l'url.
    (se vi serve qualche esempio ve lo posto la prox settimana)
    Potrebbe servire 🙂 grazie!!


  • User Attivo
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -s
    RewriteRule ^ - 
    RewriteRule ^(.*)$ index.php?request=$1 [NC,QSA,L]
    

    Ecco l'htaccess che uso, provalo creando un file index.php, metti un print "<PRE>"; print_r($_GET);

    I file se esistono vengono intercettati senza problemi, tutto il resto ti viene passato tramite variabile e puoi divertirti ad analizzarlo dopo aver fatto l'explode "/"
    NB Controlla che non contenga caratteri non ammessi per SQL injection


  • Admin

    Ciao Peeks sai che non ho ben capito cosa fai esattamente?

    A cosa ti serve esattamente l'IP?
    Cosa fa il controller?
    Come sono le tue URL attuali?
    Come vuoi che diventino?


  • User Attivo

    @Juanin said:

    Ciao Peeks sai che non ho ben capito cosa fai esattamente?

    A cosa ti serve esattamente l'IP?
    Cosa fa il controller?
    Come sono le tue URL attuali?
    Come vuoi che diventino?

    mi sa che voleva dire ID 😄


  • User Newbie

    @Juanin said:

    Ciao Peeks sai che non ho ben capito cosa fai esattamente?

    A cosa ti serve esattamente l'IP?
    Cosa fa il controller?
    Come sono le tue URL attuali?
    Come vuoi che diventino?
    Ehehehe in realtà volevo scrivere id, ho 2 controller, uno per tutto quello che riguarda la index principale, quindi switch delle pagine ed eventuali form contatti, ed uno per la sezione admin dove gestisco tutto il pannello di controllo..so che magari è un po' macchinoso ma mi sono abituato così...le url attuali sono```
    index.php?sezione=generale&cat=1


  • Admin

    Ok chiaro.

    Praticamente il parametro che ti interessa è solo 1 e non 2 visto che il sezione=generale non influisce sulla categoria.
    Non ti resta che usare solo $1 con 1 match invece che due rispetto alla regola sopra.


  • User Newbie

    Allora devo fare il file .htaccess così:

    
    <IfModule mod_rewrite.c>
    RewriteBase /
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^/([^/]+)/([^/]+)/?$ /index.php?cat=$1 
    
    </IfModule>
    
    

    e poi gli indirizzi nel menu come devono essere?


  • Admin

    In teoria ti basta fare come segue in quanto da quello che ho capito la URL ha solo una variabile.
    Nel menu basta che linki la pagina riscritta.

    RewriteRule ^/([^/]+)/?$ /index.php?cat=$1


  • User Newbie

    Ok diciamo che ho risolto!
    il file .htaccess l'ho strutturato così

    
    RewriteEngine OnRewriteBase /
    
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d 
    
    
    RewriteRule ^([^/]*)\.html$ /index.php?sezione=$1 [L,NC]
    RewriteRule ^generale/([^/]+)/?$ /index.php?sezione=generale&cat=$1 
    
    

    i link li ho messi con percorso assoluto
    che terminano con:

     /generale/miacategoria/ 
    

    Ora mi può stare bene così, ma c'è un modo per eliminare generale? se lo faccio dalla regola non mi funziona più nulla!
    in ogni caso mi sta bene anche così!!
    grazie per il vostro aiuto, è stato fondamentale!!