• User Attivo

    [.htaccess] Eccezione e dominio di terzo livello

    Ho due problemi riguardanti il mod_rewrite con .htaccess.

    1. Ho questa regola:
    RewriteRule ^news/([0-9]+)/([^/]+) index.php?id=$1
    

    Praticamente andando su sito.com/news/123/titolo_notizia/ visualizzo la notizia con id uguale a 123. Fin qui tutto bene.
    Il mio problema è che ho alcune immagini che si trovano in alcune cartelle divise per anno nella cartella news. Ad esempio, sito.com/news/2009/immagine.jpg. Cercando di visualizzare quella immagine, visualizzo la notizia con *id uguale a 2009.
    Come faccio a modificare la regola in modo che se il link è un'immagine non faccia il redirect? Mi basterebbe dire di non eseguire la regola se la seconda parte non contiene il carattere "." (punto). Ho provato in vari modi ma non ci sono riuscito. Avete qualche idea?

    1. Il secondo problema riguarda un dominio di terzo livello. Praticamente se l'indirizzo contiene il "www" visualizzo il sito in italiano, mentre se il dominio di terzo livello è "en" visualizzo il sito in inglese. Il dominio di terzo livello lo controllo tramite PHP.
      Come faccio a passare tutte le regole del "www" all'"en" senza avere problemi?

  • Super User
    1. Il punto è un carattere speciale. devi fare l'escape con un backslash per utilizzarlo in una regola proprio come punto: .

    2. www ed en puntano entrami alla stessa document root? Se sì, il file .htaccess è uno solo e vale per entrambi. Se non vuoi questo, usa RewriteCond con HTTP_HOST e ridefinisci le sezioni che ti interessa cambiare.


  • User Attivo
    1. Quello che hai scritto lo sapevo già, non potresti scrivermi tutta la riga di esempio?

    2. Tramite .htaccess faccio già puntare il dominio di secondo livello "en" al sito, volevo sapere qual è il metodo migliore per non avere problemi.