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

    htaccess: come redirezionare dai link del tipo .html a quelli .php a CONDIZIONE che..

    a condizione che $NOMEFILE.html NON esista?
    Ieri ho iniziato a switchare dai frame e altre cose divenute ormai troppo vecchie, ai div e al php.
    C'è modo di impostare una regola che, in caso di digitazione dell'url http://www.foo/bar.html redirezioni a http://www.foo/bar.php A MENO CHE bar.html non esista?
    grazie
    Ultima modifica di rigby76; 03-11-2014 a 11:03
    My site www.flapane.com - MY GALLERY - MY BLOG
    PC Intel i3-2120 - Ibook 12'' 1,33ghz 1.5GB 160GB - MBP 15'' i7 2,2ghz - Samsung S4 Mini - Sony a6000 - YamahaP90

  2. #2
    codice:
    RewriteEngine on
    RewriteCond /your/docroot/%{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)\.html http://www.tuosito.it/$1.php [R=301]
    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!".

  3. #3
    Grazie, vorrei solo capire il perchè di quello $1, quale sarebbe il parametro 1?

    EDIT:
    pare funzioni a metà...
    http://www.miosito.com/interess.htm NON FUNZIONA
    http://www.miosito.com/interess.html FUNZIONA

    Ne aggiungo una uguale per .htm?

    codice:
    RewriteEngine on
    
    RewriteCond %{HTTP_HOST} ^gallery.miosito.com$ [OR]
    RewriteCond %{HTTP_HOST} ^www.gallery.miosito.com$
    RewriteRule ^(.*)$ "http\:\/\/www\.miosito\.com\/gallery\.php" [R=301,L]
    
    RewriteCond %{HTTP_HOST} ^nix.miosito.com$ [OR]
    RewriteCond %{HTTP_HOST} ^www.nix.miosito.com$
    RewriteRule ^(.*)$ "http\:\/\/www\.miosito\.com\/nix\.php" [R=301,L]
    
    RewriteCond /public_html/%{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)\.html http://www.miosito.com/$1.php [R=301]
    Ultima modifica di rigby76; 03-11-2014 a 11:16
    My site www.flapane.com - MY GALLERY - MY BLOG
    PC Intel i3-2120 - Ibook 12'' 1,33ghz 1.5GB 160GB - MBP 15'' i7 2,2ghz - Samsung S4 Mini - Sony a6000 - YamahaP90

  4. #4
    Tu hai detto html e t'ho preso alla lettera... se vuoi farlo funzionare anche per htm fa così
    codice:
    RewriteEngine on
    RewriteCond /your/docroot/%{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)\.htm[l]?$ http://www.tuosito.it/$1.php [R=301,L]
    Visto che hai altre regole ho aggiunto anche la L.

    NB: se vuoi canonizzare il sito sull'estensione htm[l]? anzichè averne un po' così e un po' php, leva R=301 ... gli url mostrati sulla barra saran tutti htm[l]?, ma il contenuto sarà via via quello scelto... l'importante è che sei coerente nella struttura interna dei link.

    PS: ogni cosa tra parentesi è parametro, quindi $1 = (.*)
    Ultima modifica di rigby76; 03-11-2014 a 11:14
    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
    gentilissimo
    My site www.flapane.com - MY GALLERY - MY BLOG
    PC Intel i3-2120 - Ibook 12'' 1,33ghz 1.5GB 160GB - MBP 15'' i7 2,2ghz - Samsung S4 Mini - Sony a6000 - YamahaP90

  6. #6
    Mi sono accorto che non funziona, in quanto non è rispettata la condizione che ho scritto nel soggetto del thread, ovvero NON redirezionare su foo.php SE foo.htm(l) esiste.
    My site www.flapane.com - MY GALLERY - MY BLOG
    PC Intel i3-2120 - Ibook 12'' 1,33ghz 1.5GB 160GB - MBP 15'' i7 2,2ghz - Samsung S4 Mini - Sony a6000 - YamahaP90

  7. #7
    Probabilmente non hai settato bene la RewriteCond... devi mettere il percorso a partire dalla root del server, mentre rivedendo il tuo post hai messo semplicemente /public_html, quindi il file non lo trova mai e procede sempre alla rule.

    Prova a generare un errore php ad esempio... dal messaggio d'errore dovrebbe mostrarti tutta la path.

    Altrimenti puoi usare la cond equivalente, ma meno efficiente, seguente
    RewriteCond %{REQUEST_URI} !-f

    O al limite anche togliere semplicemente la path, dipende da com'è settato il server
    RewriteCond %{REQUEST_FILENAME} !-f

    Di sicuro non con /public_html/
    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!".

  8. #8
    Ciao,
    hai ragione, non ho settato il percorso completo, il perchè è dovuto al fatto che alcune volte i link funzionano anche con l'absolute path che parte da public_html, altre volte richiedono quello completo, che parte da /home.
    Pur aggiustandolo, non è cambiato niente

    RewriteEngine on
    RewriteCond /home/flapanec/public_html/%{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)\.htm[l]?$ http://www.miosito.com/$1.php [R=301,L]

    Guarda in questo caso cosa succede... http://www.miosito.com/mario.html
    Secondo me c'è qualche condizione a monte che non è stata impostata da me che prevarica, perchè non controlla l'esistenza o meno di mario.html, ma mi redireziona a forza su mario.php.

    Ho provato anche le altre tue alternative.... stesso risultato
    Ultima modifica di rigby76; 03-11-2014 a 11:12
    My site www.flapane.com - MY GALLERY - MY BLOG
    PC Intel i3-2120 - Ibook 12'' 1,33ghz 1.5GB 160GB - MBP 15'' i7 2,2ghz - Samsung S4 Mini - Sony a6000 - YamahaP90

  9. #9
    Non so se sia una condizione a monte... dagli header risulta un redirect immediato... pare che la condizione venga ignorata, oppure c'è un errore sintattico che non vedo...

    Ti faccio vedere da dove ho preso l'esempio tale e quale
    http://httpd.apache.org/docs/2.0/rew...ml#redirect404
    son metodi per personalizzare il 404... quindi si basano sull'assenza del file... ho solo cambiato la rule per redirigere al file php... poi la condizione mi pare abbastanza logica...

    Prova a sto punto il secondo metodo, anche se, come t'avevo accennato e come c'è scritto li, è più pesante perchè fa una subrequest...

    codice:
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !-U
    RewriteRule ^(.*)\.htm[l]?$ http://www.miosito.com/$1.php [R=301,L]
    Probabilmente è qualche particolarità del filesystem, con quest'ultima (che erroneamente prima t'ho indicato con la f) dovresti evitarlo perchè utilizzi solo il lato web.
    Ultima modifica di rigby76; 03-11-2014 a 11:13
    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!".

  10. #10
    Mmmm il mistero si infittisce...
    inserendo queste ultime righe, ora accede al file .htm, ma in caso quest'ultimo NON esista, non redireziona più al .php (es http://www.miosito.com/citta.htm)
    Ultima modifica di rigby76; 03-11-2014 a 11:13
    My site www.flapane.com - MY GALLERY - MY BLOG
    PC Intel i3-2120 - Ibook 12'' 1,33ghz 1.5GB 160GB - MBP 15'' i7 2,2ghz - Samsung S4 Mini - Sony a6000 - YamahaP90

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