URL semantici per i file HTML statiche con .htaccess e mod_rewrite
-
26-09-2019 - |
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!
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