Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Semplice regola mod rewrite

    Devo fare una semplice regola ma non sono capace.
    La struttura dei miei url è questa:

    host.ext/prodotti/dettagliprodotto.php?id=numero&nome=stringa

    vorrei un file .htaccess da mettere sotto /prodotti/ che mi trasformasse gli url sopra descritti in

    host.ext/prodotti/numero-stringa.html

    Magari sostituendo da dentro la stringa eventuali caratteri strani (come i ':' ) e gli spazi con degli trattini.

    Qualcuno mi sa aiutare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    mah... non potresti farlo più agevolmente in php direttamente nel tuo script? tipo:

    Codice PHP:
    // ...naturalmente devi aggiungere gli opportuni controlli...
    $id $_GET['id']; $nome $_GET['nome'];
    $id intval($id); // filtra $id
    $nome preg_replace('/[^(\x20-\x7F)]*/',''$nome); // o quel che vuoi...
    $nomefile "$id-$nome.html";
    header ("location: $nomefile");exit; 

  3. #3
    No perchè $nomefile non esiste, esiste solo dettagliprodotto.php che fa le query al db in base alla stringa passata.

    Mi serve almeno un rewrite che passi tutto quello che sta oltre /prodotti/ alla pagina dettagliprodotto.php coi parametri id e nome cosi poi posso querara il db

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ah.... allora ti serve il contrario di quanto indicato inizialmente... sì... ci vuole htaccess se faccio in tempo al volo a scrivere la regexp te la posto...

  5. #5
    Perchè dici che mi serve il contrario?
    Nei miei file ho tutti i link come
    codice:
    ..
    (cosi google li trova e li indicizza correttamente)

    Poi in realtà il mod rewrite mi rigira tutto a un unico file php, dettaliprodotto.php, spezzandomi l'url dandomi direttamente id=numero&nome=stringa così leggo immediatamente da php

  6. #6
    Quacuno mi sa aiutare?

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    vorrei un file .htaccess da mettere sotto /prodotti/ che mi trasformasse gli url sopra descritti in

    host.ext/prodotti/numero-stringa.html
    tu vuoi il contrario... trasformare l'ultimo url in quelli precedenti... cmq qualcosa tipo:

    codice:
    RewriteRule ^prodotti/(.*)-(.*)\.html$ prodotti/dettagliprodotto.php?id=$1&nome=$2 [L,QSA]

  8. #8
    Grazie, purtroppo non funziona.

    La ho messa nella dir /prodotti/ ma non va, ogni link che clicco mi dice pagina non trovata.

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    cambia [L,QSA] con [R,L,QSA] e riprova, quindi posta l'url che ti viene generato (il browser questa volta effettuerà il redirezionamento "in chiaro")... sicuramente bisogna correggere la regexp, però!

  10. #10
    Il problema era che stando sotto /prodotti/ la regola corretta è
    codice:
    RewriteRule ^(.*)-(.*)\.html$ prodotti/dettagliprodotto.php?id=$1&nome=$2 [L,QSA]
    grazie

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.