Visualizzazione risultati 1 fino 13 di 13

Discussione: [Mod_Rewrite] Percorsi relativi e Rewrite sottodirectory

  1. #1
    Guest

    Predefinito [Mod_Rewrite] Percorsi relativi e Rewrite sottodirectory

    Salve a tutti!
    Per Aumentare l'indicizzazione del sito ho deciso di attivare il Mod_Rewrite nel mio portale, così da cambiare l'estenzione delle pagine da .php a .html più gradito ai motori di ricerca. Ora ho un problema, sotto consiglio di bicchedu, stra "Riscrevendo" alcuni url dividendoli in sotto categorie, così facendo però, l'inserimento dei CSS e delle immaggini, il qui percoso è stato dato in termini assoluti, non funziona.
    Come posso risolvere questo problema?

    Esempio
    Questa è l'index normale:
    http://www.morgensterngdr.altervista.org/index.html
    Questa è un homepage di prova, scritta con lo stesso sorgente, guardate cosa succede:
    Se seguo il percosso "corretto":
    http://morgensterngdr.altervista.org/prova.php
    Tutto ok, mentre se seguo quello riscritto, che vorrei che compaia:
    http://morgensterngdr.altervista.org/prova/prova.html
    Un disastro....

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

    Predefinito

    il problema è che i percorsi per i css non è assoluto nelle tue pagine
    Codice HTML:
    <link rel="stylesheet" type="text/css" href="stile.css" media="screen">
    mentre dovrebbe essere
    Codice HTML:
    <link rel="stylesheet" type="text/css" href="/stile.css" media="screen">
    oppure così, se metti tutti i file in una sottodirectory:
    Codice HTML:
    <link rel="stylesheet" type="text/css" href="/css/stile.css" media="screen">

  3. #3
    Guest

    Predefinito

    Dreadnaut, adesso funziona perfettamente, tre domande però:
    1) Devo usare la stessa sintassi, ovverro aggiungere lo / anche nella funzione include di php?
    2) C'è un modo per sovrascrivere l'url anche quando questi sia quello reale? Ovverò, se la pagine realmente esistente è index.php, posso farsi che quando venga digitata quest'ultima, url che appaia sia comunque index.html?
    3) Vorrei sapere se ho scritto le regole correttamente, posso postare senza proble la porzione del mio .htaccess che continie la RewriteEngine?
    Ultima modifica di morgensterngdr : 11-07-2009 alle ore 16.25.21

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

    Predefinito

    1. No, i file php vivono in un altro "spazio": mod_rewrite lavora nello spazio degli url, la cui radice è nomesito.altervista.org/; i file (php e non) vivono invece nello spazio dei file sul server, ed il suo sito comincia da /membri/nomesito/.
    2. C'è, ma sono rigiri cosmici e rischi di cadere in loop ed errori 500. Se proprio non devi, accontentati di eliminare tutti i link a pagine .php: se non ci sono link, nessuno ci capiterà, ed i motori di ricerca se ne dimenticheranno.
    3. Se funzionano, è probabile che siano corrette posta pure ovviamente, magari viene fuori un metodo semplice per risolvere il punto (2)


    Curiosità, perché andare a fare pagine .html, invece di avere direttamente indirizzo nomesito/sezione/ ed eliminare l'estensione?

    Articoli in tema: How to succeed with URLs e Some URLs are better than others, magari ci sono idee utili.
    Ultima modifica di dreadnaut : 11-07-2009 alle ore 16.38.22

  5. #5
    Guest

    Predefinito

    Ho consigliato io di usare l'estensione HTML perchè convinto sia preferito dai motori

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

    Predefinito

    da una discussione del 2004:
    Do search engines, namely google, care about the page extension of a page? .htm .html .php .asp .phtml .cfm?

    In a word, no. Years ago they did. As the web has grown and new technologies have evolved, the SEs have kept pace, primarily to remain competitive with each other. An unrecognized "mime type" extension such as .fish will be a problem.
    oppure una più recente dalle pagine di supporto di Google
    Google has no preference for page extensions.
    Il discorso è diverso per quanto riguarda le pagine con query get, che è saggio trasformare con mod_rewrite.
    Ultima modifica di dreadnaut : 11-07-2009 alle ore 19.49.34

  7. #7
    Guest

    Predefinito

    Con questa risposta mi hai decisamente salvato la vita, faccio immediatamente saltare quell'.htaccess e lascio gli url così com'erano, forse...ma comunque per curiosità didatica:

    Codice:
    RewriteEngine On
    RewriteBase /
    RewriteRule ^prova/prova.html$ prova.php
    RewriteRule ^index.html$ index.php
    RewriteRule ^allineamento.html$ allineamento.php
    RewriteRule ^armature.html$ armature.php
    RewriteRule ^armi.html$ armi.php
    RewriteRule ^canidi.html$ canidi.php
    RewriteRule ^capacita.html$ capacita.php
    RewriteRule ^cavalcature.html$ cavalcature.php
    RewriteRule ^combattimento.html$ combattimento.php
    RewriteRule ^dei.html$ dei.php
    RewriteRule ^demoni.html$ demoni.php
    RewriteRule ^drow.html$ drow.php
    RewriteRule ^eletti.html$ eletti.php
    RewriteRule ^elfi.html$ elfi.php
    RewriteRule ^email.html$ email.php
    RewriteRule ^evocazioni.html$ evocazioni.php
    RewriteRule ^felini.html$ felini.php
    RewriteRule ^grazie.html$ grazie.php
    RewriteRule ^guerrieri.html$ guerrieri.php
    RewriteRule ^incanti.html$ incanti.php
    RewriteRule ^krom.html$ krom.php
    RewriteRule ^leggere.html$ leggere.php
    RewriteRule ^livello.html$ livello.php
    RewriteRule ^maghi.html$ maghi.php
    RewriteRule ^nani.html$ nani.php
    RewriteRule ^neutra.html$ neutra.php
    RewriteRule ^news.html$ news.php
    RewriteRule ^ninja.html$ ninja.php
    RewriteRule ^origine.html$ origine.php
    RewriteRule ^pesanti.html$ pesanti.php
    RewriteRule ^rettili.html$ rettili.php
    RewriteRule ^samurai.html$ samurai.php
    RewriteRule ^scheda.html$ scheda.php
    RewriteRule ^secondarie.html$ secondarie.php
    RewriteRule ^stat.html$ stat.php
    RewriteRule ^umani.html$ umani.php
    RewriteRule ^ursudi.html$ ursudi.php
    RewriteRule ^vampiri.html$ vampiri.php
    RewriteRule ^werebeast.html$ werebeast.php
    RewriteRule ^not_found.html$ not_found.php
    ErrorDocument 404 http://morgensterngdr.altervista.org/not_found.html
    L'ultimo, quello dell'errore 404, serve a far saltare il query get.

  8. #8
    Guest

    Predefinito

    Dopo ogni regola aggiungi [L]

  9. #9
    Guest

    Predefinito

    Per chiudere la stringa, ok, se usaro quel htaccess lo farò.

  10. #10
    Guest

    Predefinito

    Ma invece di scrivere così tante regole, non è meglio creare una sola???

    Codice:
    RewriteRule ^([a-z]*?)\.html$ $1.php

  11. #11
    Guest

    Predefinito

    Citazione Originalmente inviato da nokiagames Visualizza messaggio
    Ma invece di scrivere così tante regole, non è meglio creare una sola???

    Codice:
    RewriteRule ^([a-z]*?)\.html$ $1.php
    ci avevo già provato ma non voleva saperne di funzionare.

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

    Predefinito

    con quella pero' non puoi piu' avere file nel sito con estensione html, solo php.

  13. #13
    Guest

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    con quella pero' non puoi piu' avere file nel sito con estensione html, solo php.
    So, ma non ho manco un file .html nella root!

Regole di scrittura

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