Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    RewriteCond non funziona

    Ciao, ho un problema con RewriteCond, devo controllare se esiste un file, se lo è deve fare un RewriteRule, se invece non esiste ne deve fare un'altro. Il codice è questo

    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^cartella/([^/]+)/([^/]+)(.jpg|.JPG) cartella/$1/$2$3 [L]
    #RewriteRule ^cartella/([^/]+)/([^/]+)(.jpg|.JPG) cartella/no_foto.jpg [L]

    per ora l'ultima riga è commentata, ma non funziona, in pratica non viene eseguito RewriteRule, se invece commento il RewriteCond funziona correttamente. Dove sta il problema

  2. #2
    ma quello che vuoi fare è una sorta di if??

    il problema forse nasce dal fatto che la seconda per farla andare la devi appunto richiamare già di suo mentre suppongo che tu voglia fare in modo che se limmagine non esiste allora venga considerata subito no-foto... giusto??

    non so se funzia ma ti sparo li una mega bozza

    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^cartella/([^/]+)/([^/]+)(.jpg|.JPG) cartella/$1/$2$3 [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^cartella/no_foto.jpg cartella/$1/$2$3 [L]


    prova un po
    magari è una boiata ma non si sa mai
    ciauz

  3. #3
    Ciao, si, vorrei fare una sorta di if, se la foto esiste la visualizzi, altrimenti visualizzi no_foto. Ho provato il tuo codice ma non funziona. Si vede sempre e solo no_foto

  4. #4
    Utente di HTML.it L'avatar di Enoa
    Registrato dal
    Jul 2005
    Messaggi
    573
    ciao, prova così:
    codice:
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f #se il file non esiste
    RewriteCond %{REQUEST_URI} cartella/ #se l'uri contiene cartella/
    RewriteRule . cartella/nofoto.gif [L]
    da quello che mi pare di capire, se il file esiste non hai bisogno di riscrivere l'url. se ho capito male metti la regola che ti serve dopo questo listato

  5. #5
    Originariamente inviato da Enoa
    ciao, prova così:
    codice:
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f #se il file non esiste
    RewriteCond %{REQUEST_URI} cartella/ #se l'uri contiene cartella/
    RewriteRule . cartella/nofoto.gif [L]
    da quello che mi pare di capire, se il file esiste non hai bisogno di riscrivere l'url. se ho capito male metti la regola che ti serve dopo questo listato
    Se esiste il file devo riscrivere l'url, in pratica voglio nascondere la posizione in cui si trova i file, ma se qualcuno nell'url scrive un nome di foto inesistente devo far vedere una foto, altrimenti si vede un errore 404 con il percorso completo di dove va a caricare la foto.
    Il codice che mi hai dato non funziona, o meglio, se la foto è presente me la fa vedere, ma se la foto non è presente restituisce 404 con il percorso completo di dove cerca la foto

  6. #6
    Utente di HTML.it L'avatar di Enoa
    Registrato dal
    Jul 2005
    Messaggi
    573
    Il file htaccess dov'è? dentro cartella/ o sulla root?
    il percorso, relativo rispetto al file htaccess, della cartella immagini qual'è?
    Commenta:
    codice:
    RewriteCond %{REQUEST_URI} cartella/
    te l'ho messa perchè altrimenti le regole come sono messe intercettano qualunque 404

  7. #7
    Originariamente inviato da jeck
    Se esiste il file devo riscrivere l'url, in pratica voglio nascondere la posizione in cui si trova i file, ma se qualcuno nell'url scrive un nome di foto inesistente devo far vedere una foto, altrimenti si vede un errore 404 con il percorso completo di dove va a caricare la foto.
    Il codice che mi hai dato non funziona, o meglio, se la foto è presente me la fa vedere, ma se la foto non è presente restituisce 404 con il percorso completo di dove cerca la foto
    Il file htaccess si trova dentro ad sotto cartella, tipo questo

    codice:
    /sito_web/web/
    |
    |__cartella
          |
          |__htaccess
    
    |__cartella
          |
          |__sotto_cartella
                     |
                     |__img.jpg
    
    |__image
         |
         |__no_foto.gif
    il file htaccess contiene questo

    RewriteEngine On

    RewriteBase /sito_web/web/

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} cartella/
    RewriteRule . image/no_foto.gif [L]
    RewriteRule ^myImage/([^/]+)/([^/]+)(.jpg|.JPG) cartella/$1/$2$3 [L]

  8. #8
    Utente di HTML.it L'avatar di Enoa
    Registrato dal
    Jul 2005
    Messaggi
    573
    Originariamente inviato da jeck
    Il file htaccess si trova dentro ad sotto cartella, tipo questo

    codice:
    /sito_web/web/
    |
    |__cartella
          |
          |__htaccess
    RewriteBase /sito_web/web/
    Sorry , ma l'htaccess è in sotto_cartella o in cartella?
    commenta RewriteBase e riprova, posta il path dove cerca il file no_foto.gif

    EDIT
    modifica l'.htaccess così:
    codice:
    RewriteEngine On
    
    #RewriteBase /sito_web/web/
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} myImage/
    RewriteRule . image/no_foto.gif [L]
    RewriteRule ^myImage/([^/]+)/([^/]+)(.jpg|.JPG) cartella/$1/$2$3 [L]
    immagino tu faccia le prove con myImage nell'url...

  9. #9
    commentandolo cerca il file no_foto.gif dentro a cartella/image invece dovrebbe cercarlo dentro /sito_web/web/image se invece tolgo il commento richiama sempre no_foto

  10. #10
    Sembra che ho risolto, ho fatto in questo modo

    codice:
    RewriteEngine On
    
    RewriteBase /sito_web/web/
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^myImage/([^/]+)/([^/]+)(.jpg|.JPG) cartella/$1/$2$3 [L]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule . image/no_foto.gif [L]
    Se richiamo il file che esiste me lo fa vedere, altrimenti mi fa vedere il file no_foto.gif

    Grazie a tutti

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