Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1

    problema con mod_rewrite

    ciao a tutti
    sto provando a usare per la prima volta mod_rewrite
    voglio passare da una pagina tipo

    www.miodominio.it/pagina.php=12

    a una

    http://www.miodominio.it/page-12/tit...la_pagina.html

    nel mio file htaccess ho scritto

    RewriteEngine On
    RewriteRule ^page-([^/]+)/([^/]+)\.html pagina.php?id=$1 [L]

    funziona, ma con un problema: la pagina corretta viene aperta ma non viene riconosciuto il foglio di stile

    se provo una struttura del tipo

    http://www.miodominio.it/page-12-tit...la_pagina.html

    cioè senza / funziona tutto senza problemi. però tutti i siti usano / per separare variabili e/o testo nella url (quindi sarà meglio?)

    ho pensato che probabilmente non avrei problemi usando i link assoluti per definire il foglio di stile, ma vorrei evitare in quanto potrei dover spostare in futuro il sito. pensandoci non vorrei che lo stesso problemi mi si ripresenti poi nei link interni delle pagine che voglio ottimizzare.

    idee?

    grazie a tutti
    ciao
    Luca

  2. #2
    E' normale... le url relative interne (compresa quella del foglio di stile) mica sanno che hai usato il rewrite... cercano dalla dir in cui si trovano.

    Se non vuoi mettere il nome del dominio, perchè pensi di spostarlo, puoi comunque premettere uno / (ad esempio "/style.css")... a lato client funziona come un url assoluto.

  3. #3
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Accade anche a me.

    Ho realizzato da questo link
    Codice PHP:
    [*][url="lab.php?sort=1&arch=1"]Giovanni Musica[/url
    questo
    Codice PHP:
    [*][url="lab/1/1.html"]Giovanni Musica[/url
    l'.httpconf è nella folder principale, cosi come la pagina lab.php ed è cosi
    Codice PHP:
    RewriteEngine On
    RewriteRule 
    ^lab/([^/]+)/([^/]+).html lab.php?sort=$1&arch=$[L
    quando testo il link non mi prende il foglio di stile e le immagini.
    Provando quanto scritto, avendo il mio .css in root/css/style.css
    devo inserire in lab.php
    ../../css/style.css
    e non
    /css/style.css
    in quanto non mi funziona (sono in locale).

    Una cosa strana è, invece, che dopo aver apert la pagina, il link da
    Codice PHP:
    [*][url="lab/1/1.html"]Giovanni Musica[/url
    diventa
    Codice PHP:
    [*][url="lab/1/lab/1/1.html"]Giovanni Musica[/url
    ovvero duplica la prima parte di percorso, come mai? :master:

  4. #4
    In locale alcune cose possono cambiare, visto che non hai un dominio... quel percorso del css va provato sull'host.

    Il percorso te lo duplica perchè la regola diventa ricorsiva se usi le stesse iniziali (lab sia per la pagina originale che per quella riscritta)... per quella riscritta inventati qualche altro nome.
    UtèñtE non ti dirà mai come trasformare l'argilla in marmo, ma se gli chiederai come progettare una simulazione con le bacche di mirto, ti risponderà: "Versane ancora!".

  5. #5
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Originariamente inviato da -UtèñtE-
    In locale alcune cose possono cambiare, visto che non hai un dominio... quel percorso del css va provato sull'host.
    In questo modo non riesco a testarlo in locale
    Originariamente inviato da -UtèñtE-
    Il percorso te lo duplica perchè la regola diventa ricorsiva se usi le stesse iniziali (lab sia per la pagina originale che per quella riscritta)... per quella riscritta inventati qualche altro nome.
    In che modo? Se cambio il link riscritto devo metterlo uguale anche nell'httpconf, giusto?
    Ho provato a scrivere lab-mga/1/2.html utilizzando lab.php?...
    ma il problema resta.
    Non vorrei proprio che sia per il fatto dei percorsi.

    Il fatto è che se in locale utilizzo / prima del link, mi va in localhost e non nella cartella del sito. :master:

    grazie

  6. #6
    Appunto, ti va in localhost... ma sul dominio il percorso css funziona.
    Non ti conviene mettere il percorso relativo ../../ perchè poi su pagine che hai riscritto con diversa struttura non va.

    Quanto alla regola, la pagina riscritta deve chiamarsi ad esempio qualcosa/1/2.html o anche /1/2.html omettendo il qualcosa... se la fai riniziare con lab diventa ricorsiva, per il modo in cui è strutturata.

    EDIT: ti consiglio di concentrarti sul resto per ora e approfondire con calma il rewrite facendo prima numerosi test in locale... la riscrittura degli url meno volte si fa meglio è (perchè google non la prende bene a vedere sempre url diversi per le stesse pagine), quindi ti conviene affrontarla al meglio quando ne sei padrone.
    UtèñtE non ti dirà mai come trasformare l'argilla in marmo, ma se gli chiederai come progettare una simulazione con le bacche di mirto, ti risponderà: "Versane ancora!".

  7. #7
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Ho impostato il localhost che punta direttamente alla mia cartella cosi anche in locale testo le pagine come online potendo mettere / davanti ai link.
    Ora non ho problemi e ho scritto 8 regole di rewrite, per il mio menu e i link interni ai contenuti.
    se on line non fa scherzi, sposto tutto cosi com'è.

    Ma prima di far indicizzare le pagine metto un po di contenuti.

    Ora non so bene come costruire un sitemap, dato che molti link sono dinamici; ma sopratutto gli url statici, all'interno del sitemap, li inserisco cosi
    pagina/1/prova.html
    o cosi
    pagina.php?id=1&c=prova
    ?

    PS. queso è quanto mi basta per le mie pagine
    Codice PHP:
    RewriteEngine On
    RewriteRule 
    ^lab/([^/]+)/([^/]+).html lab.php?sort=$1&arch=$[L]
    RewriteRule ^progetti/([^/]+).html progetti.php?id_catimg=$[L]
    RewriteRule ^mostra-progetti/([^/]+)/([^/]+)/([^/]+).html progetti.php?id_catimg=$1&id_prj=$2&show=$[L]
    RewriteRule ^cantiere/([^/]+)/([^/]+)/([^/]+)/([^/]+).html cantiere.php?blog=$1&id_cant=$2&cod=$3&id_img=$[L]
    RewriteRule ^cantiere-post-mgalab/([^/]+)/([^/]+)/([^/]+).html cantiere.php?id_cant=$1&cod=$2&id_img=$[L]
    RewriteRule ^cantiere-tutti/([^/]+).html cantiere.php?sort=$[L]
    RewriteRule ^news/([^/]+)/([^/]+).html news.php?step=$1&n_pbl=$[L]
    RewriteRule ^news-mgalab/([^/]+)/([^/]+)/([^/]+).html news.php?step=$1&n_pbl=$2&id_pbl=$[L]
    RewriteRule ^boxes/guarda/([^/]+)/([^/]+)/([^/]+)/([^/]+).html /boxes/guarda.php?osserva=$1&n_pbl=$2&id_rif=$3&imm=$[L

  8. #8
    La sitemap, così come i link interni al sito, devono usare gli url riscritti... per un esterno gli url dinamici non devono più esistere.

    Se ti funziona tutto bene... ma ti consigliavo di prenderti tempo per studiare il tutto con più eleganza... ad esempio hai pensato che con un (.*) puoi immettere una qualsiasi stringa nelle url (ad esempio ripetere il title della pagina, opportunamente pulito dai caratteri speciali)?
    UtèñtE non ti dirà mai come trasformare l'argilla in marmo, ma se gli chiederai come progettare una simulazione con le bacche di mirto, ti risponderà: "Versane ancora!".

  9. #9
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Sicuramente terrò tutte queste cose in considerazione per un'altra occasione, ora qualcosa più ho capito. Non davo importanza a come chiamare le pagine o i link.

    Ma per l'(.*) mi dici che si può mettere stringhe a piacere. Una cosa ho notato, dimmi se sbaglio, quando riscrivo un link ad esempio riporto:
    /colori/1/5.html
    nel .httpaccess
    ^colori/ qui i parametri

    non posso mettere nell'httpaccess
    ^colori2/ qui i parametri.

    Se mi dici che si può stampare un title, dovrebbe essere anche nell'url riscritto, altrimenti il link non coincide.

    Ora mi cerco qualcosa in merito.
    Grazie

  10. #10
    Si che puoi mettere colori/ e colori2/ ... il problema è se usi attaccate espressioni simboliche tipo colori/ e colori(.*)/

    Puoi fare ad esempio un link colori-il_mio_title/1/2.html indicandolo come colori-(*.)/([^/]*)/([^/]*)\.html

    Poi ovviamente nei link interni e delle sitemap devi essere coerente e indicare per ogni pagina un'unica stringa.
    UtèñtE non ti dirà mai come trasformare l'argilla in marmo, ma se gli chiederai come progettare una simulazione con le bacche di mirto, ti risponderà: "Versane ancora!".

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.