Visualizzazione risultati 1 fino 18 di 18

Discussione: Aiuto riscrittura url con rewriterule

  1. #1
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito Aiuto riscrittura url con rewriterule

    Sto provando, per il mio nuovo sito, tramite dei tutorial su internet e cercando qui sul forum, a riscrivere li url del mio sito in url più breve, che da quello che si dice aiutano i bot di google, visto che questi ultimi fanno confusione con gli url contenente molte variabili, vi risulta questo a voi?

    Cmq, il mio problema principale è che, dopo aver letto alcuni tutorial sul web, o scritto questo nel file nel mio file .htaccess, contenuto in una sottocartella nella root del mio sito:

    Codice:
    RewriteEngine on
    RewriteBase /
    RewriteRule ^(.*)$ index.php?page=$1 [L]
    Con questo codice vorrei poter riscrivere gli url da http://www.miosito.it/cartella/ok.php?id=001 a http://www.miosito.it/cartella/001, ma purtroppo mi viene generato un'errore 404 su ogni pagina della cartella, come mai? dove sbaglio?
    Ultima modifica di darkwolf : 08-12-2012 alle ore 22.32.28 Motivo: (Sposto nella sezione corretta)

    Sevenjeak
    Software developer and much more

  2. #2
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito

    Prova a metterlo nell'htaccess della root (sistemando i percorsi nella regola del rewrite) :)
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


  3. #3
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Nell'htaccess della cartella principale del mio sito ho provato, sia a scrivere questo:

    Codice:
    RewriteEngine on
    RewriteBase /cartella
    RewriteRule ^(.*)$ index.php?page=$1 [L]
    Che questo:

    Codice:
    RewriteEngine on
    RewriteBase /
    RewriteRule ./cartella/^(.*)$ ./cartella/index.php?page=$1 [L]
    Ma in entrambi i codice non mi funziona, mi va tutto come prima, come se la regola non esistesse.

    Sevenjeak
    Software developer and much more

  4. #4
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito

    Io proverei (seguendo "ok.php?id" del primo esempio - anziché "index.php?page" di quest'ultimo e limitando la regola a id numerici per sicurezza):
    Codice:
    RewriteEngine on
    RewriteBase /
    RewriteRule ^cartella/([0-9]+)$ http://tuosito.*/cartella/ok.php?id=$1 [R=301,L]
    -
    PS: importante indicare il percorso assoluto nel rewrite ed è bene segnalare che è un redirect 301 così google eliminerà i vecchi url dal suo database e li aggiornerà con questi nuovi
    Ultima modifica di darkwolf : 09-12-2012 alle ore 15.20.03
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


  5. #5
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Niente non funziona, ma facendo un'altra ricerca su internet ho provato a mettere questo nell'htaccess della cartella al quale voglio applicare la regola:

    Codice:
    RewriteEngine on
    RewriteRule ^([0-9]+)$ http://www.sevenjeak.altervista.org/testing/index.php?id=$1 [R=301, L]
    Mi funziona, ma quando scrivo nell'url http://miosito.ext/cartella/0, mi traduce come se l'url fosse http://miosito.ext/index.php?id=0, ma oltre a tradurlo quest'ultimo indirizzo me lo scrive nella barra degli indirizzi, modificando l'url che io ho scritto ( http://miosito.ext/cartella/0 ), cosa che io non voglio che accade.
    Ultima modifica di sevenjeak : 09-12-2012 alle ore 16.13.38

    Sevenjeak
    Software developer and much more

  6. #6
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito

    Scusa, magari mi sfugge qualcosa, ma a mio parere sono uguali i due codici
    Solo che il mio agisce dalla root "nella" directory (così hai solo un htaccess su cui lavorare), mentre il tuo agisce direttamente nella directory, ma non vedo perché se funziona il secondo non dovrebbe funzionare il primo :/
    -
    In ogni caso, è normale che riscriva l'url... è di questo che si occupa il "Rewrite" con 301 e a mio parere ti conviene così - così eviterai problemi con doppi url sui motori di ricerca (lato SEO è la cosa migliore).
    Ultima modifica di darkwolf : 09-12-2012 alle ore 16.53.55 Motivo: Posto sotto... non avevo visto la replica!
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


  7. #7
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Non so... ho riprovato ancora una volta riscrivendo il tuo codice nella directory principale:

    Codice:
    RewriteEngine on
    RewriteBase /
    RewriteRule ^testing/([0-9]+)$ http://www.sevenjeak.altervista.org/testing/index.php?id=$1 [R=301,L]
    Ma non mi funziona, eppure anche a me sembra uguale.

    Citazione Originalmente inviato da darkwolf Visualizza messaggio
    così eviterai problemi con doppi url sui motori di ricerca.
    In che senso evito problemi con i doppi url sui motori di ricerca?

    Sevenjeak
    Software developer and much more

  8. #8
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito

    Io ho provato adesso nel webserver locale e a me funzionano indistintamente entrambi!
    Sicuro di non lasciare l'htaccess nella sottodirectory che quindi fa a pugni con il codice della root?
    -
    In ogni caso ho capito cosa intendi tu, hai ragione sul fatto del redirect:
    -
    Codice:
    RewriteEngine on
    RewriteBase /
    RewriteRule ^cartella/([0-9]+)$ http://tuosito.**/cartella/ok.php?id=$1 [L]
    Ultima modifica di darkwolf : 09-12-2012 alle ore 16.58.05
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


  9. #9
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Non so perché, ma credo che il motivo sia quello da te scritto, prima non mi funzionava quel codice, sia se lo metto nella directory principale che lo metto, modificando l'url nella cartella, ora mi funziona solamente se lo metto nella cartella, non saprei perché prima non mi funzionava, modificando il codice cosi:

    Codice:
    RewriteEngine on
    RewriteBase /
    RewriteRule ^([0-9]+)$ http://www.sevenjeak.altervista.org/testing/index.php?id=$1 [L]
    Ma purtroppo, sia se metto [L], o sia se metto [R=301, L] alla fine, il risultato non cambia, l'indirizzo della pagina mi cambia sempre nell'indirizzo originale.

    Sevenjeak
    Software developer and much more

  10. #10
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito

    Devi riavviare il browser dopo che cambi l'htaccess altrimenti rimarrà in cache!
    A me, quell'ultimo da me postato, messo nella root, con directory che si chiama "cartella" e file che si chiama "ok.php" funziona bene...
    -
    Quello che hai pubblicato tu non è corretto (o meglio, non abbastanza preciso e rischia di darti problemi)!
    Il rewrite base punta alla root, e il codice non fa riferimento alla directory nella regola (ma lo fa nella seconda parte).
    -
    Cambialo in:
    Codice:
    RewriteEngine on
    RewriteBase /
    RewriteRule ^testing/([0-9]+)$ http://www.sevenjeak.altervista.org/testing/index.php?id=$1 [L]
    e mettilo nell'htaccess della root (e non mettere htaccess nella directory testing).
    Ultima modifica di darkwolf : 09-12-2012 alle ore 18.17.52
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


  11. #11
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Infatti non ci avevo pensato alla cache, infatti dopo averla ripulita in tuo codice funziona, rimane solamente il fatto che: se scrivo http://miosito.it/testing/1 mi traduce http://miosito.it/index.php?page=1, ma mi modifica anche l'url che inserisco.

    Sevenjeak
    Software developer and much more

  12. #12
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito

    Ho provato ed in effetti va così
    L'unica cosa che mi vien da pensare è il php del codice che per qualche motivo forza un redirect...
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


  13. #13
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Il file php ha questo semplice codice:

    Codice PHP:
    <?php
    echo "<strong>Id pagina corrente</strong>: " . $_GET["id"];
    ?>
    stampa solamente, all'interno della stringa, la variabile passata nella querystring.

    P.S.: In ogni caso, il redirect, mi viene eseguito anche se nella pagina non ho nessun codice.
    Ultima modifica di sevenjeak : 09-12-2012 alle ore 18.44.23

    Sevenjeak
    Software developer and much more

  14. #14
    L'avatar di tdef
    tdef non è connesso Utente giovane
    Data registrazione
    12-12-2011
    Residenza
    Udine
    Messaggi
    81

    Predefinito

    @seven eventualmente segui questa semplice guida: http://www.regole-seo.com/rewrite-url
    Tower Defense giochi in Flash

  15. #15
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito

    http://www.darkwolf.it/testing/1
    -
    In locale nessun problema con:
    Codice:
    RewriteEngine on
    RewriteBase /
    RewriteRule ^cartella/([0-9]+)$ http://localhost/cartella/ok.php?id=$1 [L]
    -
    Mentre su altervista fa il problema che fa a te e funziona solo con:
    Codice:
    RewriteEngine on
    RewriteBase /
    RewriteRule ^cartella/([0-9]+)$ ./cartella/ok.php?id=$1 [L]
    Scusa, ignoro il perché
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


  16. #16
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    @tdef: infatti il codice da me postato nel #5 messaggio vieni da quel sito, no proprio da quella pagina, ma contenuto in un link presente in questa, e non mi spiego come mai usa un'indirizzo assoluto che mi effettua il redirect, avrò letto male il suo funzionamento, cercherò di studiarmi meglio il contenuto del link, il mod rewrit.

    @darkwolf:: Ora il tuo codice funzione, e non fa niente, non importa il motivo per cui prima, con un indirizzo assoluto, non andava e ora, che ha un indirizzo relativo, funziona, cercherò di scoprirlo mano mano.

    Grazie a tutte e due per l'aiuto.
    Ultima modifica di sevenjeak : 09-12-2012 alle ore 20.15.35

    Sevenjeak
    Software developer and much more

  17. #17
    L'avatar di tdef
    tdef non è connesso Utente giovane
    Data registrazione
    12-12-2011
    Residenza
    Udine
    Messaggi
    81

    Predefinito

    @Dark ci ho provato anche io e non va mi da sempre errore
    Tower Defense giochi in Flash

  18. #18
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito

    @Seven: in localhost funziona in entrambi i modi... per questo andavo convinto così, spiacente!
    -
    @Tdef: funziona sia a me che a seven... non può non funzionare a te :P
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


Regole di scrittura

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