Autore Topic: [RISOLTO] .htaccess e aggiunta/rimozione slash a url  (Letto 358 volte)

Offline danielecr

  • Appassionato
  • ***
  • Post: 342
    • Mostra profilo
Ciao a tutti,
qualcuno sa che regole scrivere nell'htaccess in modo che:
1- se viene richiesto l'url linkalsito/en oppure linkalsito/it automaticamente aggiunga uno slash finale, in modo che diventi linkalsito/en/ oppure linkalsito/it/
2- tolga lo slash finale in tutti gli altri casi (nel caso in cui venga richiesto dal visitatore un url con slash finale) <-- ora, sia che venga richiesto con slash finale o meno il contenuto della pagina viene visualizzato (possibile problema di contenuto duplicato).

Attualmente ho questa regola per aggiungere lo slash:
Codice: [Seleziona]
RewriteCond %{REQUEST_URI} ^/(en|it)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]

Come implemento il punto 2 senza che vada in loop?
« Ultima modifica: 20 Mag 2017, 09:57:57 da danielecr »

Offline danielecr

  • Appassionato
  • ***
  • Post: 342
    • Mostra profilo
Re:.htaccess e aggiunta/rimozione slash a url
« Risposta #1 il: 19 Mag 2017, 18:01:29 »
Ho provato cos ma non va:
Codice: [Seleziona]
RewriteCond %{REQUEST_URI} ^/(en|it)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]
RewriteCond %{REQUEST_URI} !^/(en|it)$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

se richiedo linkalsito/it (senza slash finale) d errore di reindirizzamento..Se metto i due spezzoni a s stanti (solo le prime tre righe o solo le seconde tre righe) fa quello che deve fare..

mmm..ho capito che la quarta riga che non va..se richiedo it/ levo lo slash, ma va poi in conflitto con la prima riga..
« Ultima modifica: 19 Mag 2017, 18:32:44 da danielecr »

Offline danielecr

  • Appassionato
  • ***
  • Post: 342
    • Mostra profilo
Re:.htaccess e aggiunta/rimozione slash a url
« Risposta #2 il: 20 Mag 2017, 09:57:31 »
Ho risolto cos, magari torna utile ad altri.

Codice: [Seleziona]
RewriteCond %{REQUEST_URI} ^/(en|it)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]
RewriteCond %{REQUEST_URI} ^/(en/|it/)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .? - [S=1]
RewriteRule ^(.*)/$ /$1 [L,R=301]
« Ultima modifica: 20 Mag 2017, 10:29:40 da danielecr »

 

Torna su