Visualizzazione risultati 1 fino 7 di 7

Discussione: rewrite engine

  1. #1
    Guest

    Predefinito rewrite engine

    Salve, ma perchè non mi funge la riscrittura dei link?
    Codice PHP:
    RewriteEngine On
    RewriteRule
    ^index.html$ index.php
    RewriteRule
    ^indice-articoli.html$ archivio.php
    RewriteRule
    ^about.html$ about.php
    RewriteRule
    ^contatti.html$ contatti.php
    RewriteRule
    ^login.html$ login.php
    RewriteRule
    ^register.html$ register.php
    Cosa c è che nn va?

  2. #2
    programmazioned non è connesso Utente attivo
    Data registrazione
    25-03-2008
    Messaggi
    440

    Predefinito

    Aggiungi prima delle regole di riscrittura:
    Codice:
    RewriteBase /
    Saluti!

  3. #3
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Citazione Originalmente inviato da programmazioned Visualizza messaggio
    Aggiungi prima delle regole di riscrittura:
    Codice:
    RewriteBase /
    Saluti!
    Oltre a questo, fai l'escape del punto ( . ) all'interno delle regole.
    Altrimenti anche visitando index:html, index|php, indexQUALSIASICARATTEREphp sarà considerato valido...

    Inoltre, secondo me, potresti evitare di scrivere così tante regole:
    Codice:
    RewriteEngine On
    RewriteBase /
    RewriteRule ^(index|about|contatti|login|register)\.html$ $1.php
    RewriteRule ^indice-articoli\.html$ archivio.php

  4. #4
    Guest

    Predefinito

    Ok, grazie, un altra cosa:
    E se io ora volessi riscrivere l'url in questo modo?
    Codice:
    da: http://.../articoli.php?id=n
    a: http://.../articoli/titolo-articolo
    Ovviamente i dati necessari li prendo dal db ma come faccio ad interagire con l'.htaccess?
    Ultima modifica di w4r3z : 10-05-2011 alle ore 16.56.58

  5. #5
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Qualcosa di simile:
    Codice:
    RewriteRule ^articoli/(\w+)-(\d+)$ articoli.php?titolo=$1&id=$2
    e con php controlli $_GET['titolo'] e $_GET['id']...

  6. #6
    Guest

    Predefinito

    Ho provato così:

    .htaccess: RewriteRule ^articoli/([^/]+)\.html articoli.php?titolo=$1&id=$2 [L]

    e su articoli.php mi sono richiamato l'id e il titolo dal db opportunamente modificato (facendolo lowercase e sostituendo gli spazi con un trattino).

    Adesso come dovrei richiamare la pagina dell'articolo con questa regola?

    edit: Scusate, ho rivisto il codice da me scritto precedentemente ma mi sono accorto di un paio di stupidaggini, ho corretto nel seguente modo, credendo che sia scritto correttamente questa volta ma ahime non funge:

    .htaccess
    Codice:
    RewriteRule ^articoli/(.*)-(.*)\.html$ articoli.php?titolo=$1&id=$2
    poi dentro il file articoli.php ho passato come variabile 'titolo' una variabile da me creata, lavorando sopra la stringa titolo presa dal db, invece come variabile 'id' la variabile $_GET[id] ovviamente.

    Ma non funge se io scrivo l'url seguente: .../articoli/pincopallino-id.html
    (dove pincopallino è il titolo dell'articolo opportunamente modificato da me togliendo gli uppercase e sostituendo gli spazi con dei trattini)

    Forse non funge perchè in qualche modo sbaglio ad interpretare nell'htaccess il passaggio della variabile interna da me creata per il titolo?

    Mi aiutate per favore che non ci sto capendo più niente? Sto procedendo a tentativi!

    poi se mi potreste indicare una guida dettagliata che spieghi come affrontare determinate situazioni ne sarei eternamente grato!
    Ultima modifica di javascripter : 12-05-2011 alle ore 14.53.30 Motivo: up, usa il tasto edita.

  7. #7
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Prima di RewriteRule..., hai inserito:
    Codice:
    RewriteEngine On
    RewriteBase /
    ?

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •