Visualizzazione risultati 1 fino 7 di 7

Discussione: Mod rewrite sbagliato

  1. #1
    Guest

    Predefinito Mod rewrite sbagliato

    Salve, sto creando un servizio di tinyurl. Ho pensato di usare il mod rewrite, ma non l'ho mai usato e non mi funziona. Ho scritto:
    Codice PHP:
    RewriteEngine on
    RewriteRule
    /([^/]+) urls.php?url=$1
    Il servizio mi crea un url del genere:
    Codice:
    http://gabryhacker.altervista.org/fwvl889zdo7j
    Ma se ci vado mi da un 404, perchè?
    Dovrei trasformare l'url da http://gabryhacker.altervista.org/fwvl889zdo7j a http://gabryhacker.altervista.org/urls.php?url=fwvl889zdo7j
    Ultima modifica di gabryhacker : 17-05-2009 alle ore 12.58.47

  2. #2
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    A me funge benissimo, prova comunque così:
    Codice PHP:
    RewriteEngine On
    RewriteBase
    /
    RewriteRule ^/([^/]+)$ urls.php?url=$1
    Apprezzi l'aiuto? Offrimi un caffè!

  3. #3
    Guest

    Predefinito

    Ho provato ma continua a darmi errore 404, non reindirizza su urls.php

  4. #4
    Guest

    Predefinito

    Codice:
     RewriteEngine On
    RewriteBase /
    RewriteRule ^([a-zA-Z0-9]*)$ urls.php?url=$1  [L]

  5. #5
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Mi viene spontanea questa domanda (dopo aver visitato il sito): esiste la pagina urls.php e si trova nella root?
    Codice PHP:
    RewriteEngine On
    RewriteBase
    /
    RewriteRule ^/([^/]+)$ /urls.php?url=$1
    Questo o quello di biccheddu nemmeno funzionano?
    Apprezzi l'aiuto? Offrimi un caffè!

  6. #6
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,266

    Predefinito

    Di nuovo Miki92 all'attacco sull'htaccess -sigh- e sempre gli stessi errori

    • RewriteBase non è necessario, ed a volte disturba
    • urls.php cade sotto quella regola, quindi si forma un ciclo di riscrittura infinito
    • urls.php deve esistere, ed ovviamente mod_rewrite deve essere attivato dal pannello di controllo


    La regola corretta è quasi quella proposta da Biccheddu, che non va a riscrivere all'infinito, ma usa l'asterisco, che permette sequenze vuote e quindi "matcha" con il nome del sito. La riscriverei in

    Codice:
    RewriteEngine On
    RewriteRule ^(\w+)$   urls.php?url=$1
    Se vuoi limitare di più il tipo di "piccolo url", cambi il \w in qualcosa di più preciso, e.g. \w{3,10}+

    Senza RewriteBase, senza barra davanti, e soprattutto che eviti il ciclo infinito. Miki92, cerca di ricordartelo per la prossima volta e prova le cose prima di suggerirle (errate).
    Ultima modifica di dreadnaut : 17-05-2009 alle ore 18.12.09

  7. #7
    Guest

    Predefinito

    Grazie dread per la risposta. Purtroppo mi si è rotta la scheda video dell'altro pc e i files li avevo lì, quindi devo aspettare per rimettere tutto online. Vi farò sapere

Regole di scrittura

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