Domanda

mod_rewrite sempre deflettori me ... qualcuno può dirmi le regole ho bisogno di ottenere i seguenti URL pulite? Desiderata URL a sinistra, URL reale sulla destra.

/our-work/ => /our-work.html
/our-work/some-project/ => /our-work/some-project.html
/contact/ => /contact.html

Come si può vedere, voglio forzare trailing slash su tutti gli URL troppo.

Grazie!

È stato utile?

Soluzione

Prova questa regola:

RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)/$ $1.html [L]

E per aggiungere slash:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .*[^/]$ %{REQUEST_URI}/ [L,R=301]

Assicurati di mettere quelle regole che causa un reindirizzamento esterno (in modo esplicito utilizzando R bandiera o implicitamente) di fronte a quelle regole che giusta causa un reindirizzamento / riscrittura interno. Quindi in questo caso:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .*[^/]$ %{REQUEST_URI}/ [L,R=301]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)/$ $1.html [L]
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top