Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    17

    mod_rewrite, problemi nonostante le varie guide...

    Salve a tutti,
    faccio una piccola premessa. Prima di scrivere questo messaggio ho letto varie guide ed alcuni treads (di questo forum) tra cui:
    http://www.yourinspirationweb.com/20...ivere-gli-url/
    http://www.giorgiotave.it/wikigt/os/Guida_mod_rewrite
    http://forum.html.it/forum/showthrea...readid=1335675 (con relativi collegamenti)

    Nonostante ciò, però, non sono riuscito a risolvere il mio problema. In pratica ho la necessità di trasformare URL del tipo
    http://www.miosito.it/articoli.php?t=titolo_articolo
    in URL del tipo
    http://www.miosito.it/articoli/titolo_articolo

    Ho provato a scrivere delle "RewriteRules", ma non funzionano. Nel file .htaccess ho scritto questo:

    RewriteEngine On
    RewriteRule ^/articoli.php?t=$ /articoli/

    Il problema è il seguente. Se nella barra degli indirizzi digito
    http://www.miosito.it/articoli.php?t=titolo_articolo
    vedo il contenuto della pagina (e l'URL non cambia).
    Se, invece, digito
    http://www.miosito.it/articoli/titolo_articolo
    oppure
    http://www.miosito.it/articoli/titolo_articolo/
    ricevo il messaggio di Apache relativo all'errore 404 (oggetto non trovato).

    Cosa sto sbagliando?
    Aiuto, se non riesco a risolvere questo problema non posso andare avanti con la creazione del sito...
    Non so più dove sbattere la testa!

    PS: Dimenticavo, il problema si verifica sia con Xampp 1.7.4, sia in un dominio su Aruba (hosting linux)...

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    55
    prova così
    codice:
    RewriteEngine On
    RewriteRule ^articoli/([^/]*)$ /articoli.php?t=$1 [L]
    ciao!

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    17
    Originariamente inviato da Stranges
    prova così
    codice:
    RewriteEngine On
    RewriteRule ^articoli/([^/]*)$ /articoli.php?t=$1 [L]
    ciao!
    Stranges, prima di ogni altra cosa grazie per la risposta; purtroppo, però, (come temevo) non ha funzionato.
    Infatti, avevo provato a fare diversi tentativi applicando le regex, ma avevo sempre raggiunto lo stesso risultato: quando digito l'URL "riscritto" ricevo il messaggio "oggetto non trovato"...

    Non so cosa pensare, mi verrebbe da dubitare del corretto funzionamento del mod_rewrite sul server, ma se eseguo la funzione phpinfo() il mod_rewrite risulta caricato ed attivo; inoltre, nel file "httpd.conf" la riga relativa al modulo è decommentata...Quindi tutto dovrebbe essere a posto!

    Davvero, non so cosa pensare; potrei provare qualcos'altro?

  4. #4
    Salve! Entro anche io in questa discussione poichè sto cercando di risolvere lo stesso problema da un po di tempo.

    In generale la questione è questa, supponiamo di avere una pagina del tipo:

    http://www.miosito.it/offerte.php?id...imana-scontato

    e di volerla trasformare così:

    http://www.miosito.it/offerte/fine-s...a-scontato.php

    Secondo quanto ho potuto appurare, premesso che mod_rewrite sia attivo e via dicendo, il file .htaccess dovrebbe contenere questa semplice regola:

    RewriteEngine On
    RewriteRule ^.+offerte/(.+)\.php$ offerte?id=$1 [L,NC]

    dove (.+) indica uno o più caratteri qualsiasi, che in questo caso dovrebbero essere fine-settimana-scontato, che poi vengono ripresi tramite la variabile $1.

    In teoria quindi tutto molto semplice, fatto sta che in pratica la cosa così non funziona!!! A farmi irritare ancora di più è il fatto che se tento con un ID numerico, utilizzando più o meno la stessa tecnica, il mod_rewrite funziona ed effetta il match corretto degli url che gli passo.

    Ho anche trovato una FAQ in proposito molto chiara, la quarta FAQ che potete leggere a questo indirizzo:

    http://forum.modrewrite.com/viewtopic.php?p=11041#11041

    La terza soluzione proposta nella FAQ sembra fatta apposta per risolvere il mio problema, ma anche con questa regola niente da fare:

    RewriteEngine On
    RewriteRule ^.+offerte/([^/]+)\.php$ offerte?id=$1 [QSA,NC]

    A questo punto, se troviamo qualcuno che ci può dare una mano, sarei molto felice anche io!
    Il mondo è diviso in 10 gruppi di persone... chi capisce il binario e chi no!

    http://www.pratesi.net

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    17
    Originariamente inviato da Felixfree
    Salve! Entro anche io in questa discussione poichè sto cercando di risolvere lo stesso problema da un po di tempo.

    In generale la questione è questa, supponiamo di avere una pagina del tipo:

    http://www.miosito.it/offerte.php?id...imana-scontato

    e di volerla trasformare così:

    http://www.miosito.it/offerte/fine-s...a-scontato.php

    Secondo quanto ho potuto appurare, premesso che mod_rewrite sia attivo e via dicendo, il file .htaccess dovrebbe contenere questa semplice regola:

    RewriteEngine On
    RewriteRule ^.+offerte/(.+)\.php$ offerte?id=$1 [L,NC]

    dove (.+) indica uno o più caratteri qualsiasi, che in questo caso dovrebbero essere fine-settimana-scontato, che poi vengono ripresi tramite la variabile $1.

    In teoria quindi tutto molto semplice, fatto sta che in pratica la cosa così non funziona!!! A farmi irritare ancora di più è il fatto che se tento con un ID numerico, utilizzando più o meno la stessa tecnica, il mod_rewrite funziona ed effetta il match corretto degli url che gli passo.

    Ho anche trovato una FAQ in proposito molto chiara, la quarta FAQ che potete leggere a questo indirizzo:

    http://forum.modrewrite.com/viewtopic.php?p=11041#11041

    La terza soluzione proposta nella FAQ sembra fatta apposta per risolvere il mio problema, ma anche con questa regola niente da fare:

    RewriteEngine On
    RewriteRule ^.+offerte/([^/]+)\.php$ offerte?id=$1 [QSA,NC]

    A questo punto, se troviamo qualcuno che ci può dare una mano, sarei molto felice anche io!
    Ciao Felixfree,
    accidenti, il tuo è davvero un bel dilemma. Con un ID numerico il tutto funziona, con una stringa no! :-)
    Io credo di essere nella tua stessa situazione anche se, onestamente, con un ID numerico non ho provato...
    La cosa però è strana, davvero strana; pensa, ho addirittura provato scrivendo le RewriteRule secondo le guide linkate nel primo messaggio ma niente, non funzionano!
    Non so proprio dove sbattere la testa, in quanto:
    - secondo la funzione phpinfo() il mod_rewrite è correttamente caricato;
    - il server interpreta correttamente il .htaccess (se inserisco altre direttive queste funzionano);
    - Ho provato sia su piattaforma Unix (hosting linux di Aruba) che su piattaforma Windows (Xampp in locale).

    Devo creare un mio sito con queste benedette url seo-friendly, ma per ora non riesco davvero a trovare una soluzione...
    Quindi, non mi resta che rinnovare la richiesta di aiuto... E, visto che da quanto ho capito siamo sulla stessa barca, questo "aiuto" risolverà il problema ad entrambi! :-)

    PS: Che sia un bug del webserver? Però, qualora lo fosse, possibile che ce ne accorgiamo soltanto noi, soltanto adesso? Bo....

  6. #6

    RISOLTO!

    Ciao a tutti! Io ho risolto il mio problema, adesso funziona anche passando come parametro uno stringa invece di un numero. L'errore che commettevo era dovuto al fatto che nel caso dell'ID numerico creavo un indirizzo del tipo .../offerta-11.php e quindi era lecita la RegExp che iniziava con .+, mentre adesso l'url prima del pattern da matchare coincide con la cartella effettiva dove si trova il file .htaccess, quindi non c'è bisogno di .+ all'inizio! Magari fate attenzione anche voi a questa cosa che seppur banale a me a creato diversi problemi.

    Saluti
    F
    Il mondo è diviso in 10 gruppi di persone... chi capisce il binario e chi no!

    http://www.pratesi.net

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 © 2026 vBulletin Solutions, Inc. All rights reserved.