- Home
- Categorie
- La Community Connect.gt
- News Ufficiali da Connect.gt
- Redirect 301 con htaccess da .html a formato directory
-
Redirect 301 con htaccess da .html a formato directory
Ciao ragazzi,
ho cercato in giro ma tutti i codici che ho trovato non hanno funzionato, cosa devo inserire nel file .htaccess per fare un redirect permanente e cambiare l'estensione di tutte le url del mio sito da .html al formato directory (slash inclusa)?
Faccio un esempio per chiarire meglio:
da
nomesito.com/cartella/url.html
a
nomesito.com/cartella/url/Grazie anticipatamente
-
Ciao, non l'ho testato però dovrebbe funzionare se messo nel .htaccess della directory:
RewriteEngine On RewriteRule ^(.+)\.htm$ example.com/directory/$1/ [R=301,NC]
-
Ciao Fregior,
e grazie per l'aiuto ma non funziona.Comunque per precisare meglio la struttura che ha il mio sito è:
nomesito.com/cartella/sottocartella/articolo.html
e la voglio
nomesito.com/cartella/sottocartella/articolo/Il fatto che non funzioni nessuno dei tanti codici provati mi fa pensare che forse devono essere adattati al mio .htaccess:
## # @version $Id: htaccess.txt 10492 2008-07-02 06:38:28Z ircmaxell $ # @package Joomla # @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # @license http://www.gnu.org/copyleft/gpl.html GNU/GPL # Joomla! is Free Software ## ##################################################### # READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE # # The line just below this section: 'Options +FollowSymLinks' may cause problems # with some server configurations. It is required for use of mod_rewrite, but may already # be set by your server administrator in a way that dissallows changing it in # your .htaccess file. If using it causes your server to error out, comment it out (add # to # beginning of line), reload your site in your browser and test your sef url's. If they work, # it has been set by your server administrator and you do not need it set here. # ##################################################### ## Can be commented out if causes errors, see notes above. Options +FollowSymLinks # # mod_rewrite in use RewriteEngine On RewriteCond %{HTTP_HOST} ^dimensionecasino.com RewriteRule ^(.*)$ http://www.dimensionecasino.com/$1 [L,R=301] ########## Begin - Rewrite rules to block out some common exploits ## If you experience problems on your site block out the operations listed below ## This attempts to block the most common type of exploit `attempts` to Joomla! # # Block out any script trying to set a mosConfig value through the URL RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) # Block out any script trying to base64_encode crap to send via URL RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) # Block out any script that includes a <script> tag in URL RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] # Block out any script trying to set a PHP GLOBALS variable via URL RewriteCond %{QUERY_STRING} GLOBALS(=|[|\%[0-9A-Z]{0,2}) # Block out any script trying to modify a _REQUEST variable via URL RewriteCond %{QUERY_STRING} _REQUEST(=|[|\%[0-9A-Z]{0,2}) # Send all blocked request to homepage with 403 Forbidden error! RewriteRule ^(.*)$ index.php [F,L] # ########## End - Rewrite rules to block out some common exploits # Uncomment following line if your webserver's URL # is not directly related to physical file paths. # Update Your Joomla! Directory (just / for root) # RewriteBase / ########## Begin - Joomla! core SEF Section # RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !^/index.php RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ RewriteRule (.*) index.php RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] # ########## End - Joomla! core SEF Section
e in più sotto ci sono alcuni redirect fatti a mano da me.
Grazie ancora
-
Ciao bud,
prova con questa regola:RewriteRule ^(.*).html$ /$1/ [L,NC,R=301]
-
Ciao ayrton,
grazie mille, funziona alla perfezione!
-
Ciao ayrton, sto cercando di effettuare l'operazione inversa al codice che hai postato. Cioè da dominio.com/directory/ e dominio.com/directory (senza slash) a dominio.com/directory.html.
Grazie in anticipo!
-
@marco863 said:
Ciao ayrton, sto cercando di effettuare l'operazione inversa al codice che hai postato. Cioè da dominio.com/directory/ e dominio.com/directory (senza slash) a dominio.com/directory.html.
Grazie in anticipo!
Ciao marco863,
prova cosi:RewriteRule ^([^/]*)$ /$1.html [L,NC,R=301] RewriteRule ^([^/]*)/$ /$1.html [L,NC,R=301]
-
Ciao ayrton, grazie per la risposta. Sono sicuro che il codice è giusto ma probabilmente sbaglio ad inserirlo all'interno del file .htaccess perchè non riesco a farlo funzionare. Esattamente dove dovrei inserirlo? Ti posto il codice del mio file attualmente funzionante:
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) # Block out any script trying to base64_encode crap to send via URL RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) # Block out any script that includes a <script> tag in URL RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] # Block out any script trying to set a PHP GLOBALS variable via URL RewriteCond %{QUERY_STRING} GLOBALS(=|[|\%[0-9A-Z]{0,2}) # Block out any script trying to modify a _REQUEST variable via URL RewriteCond %{QUERY_STRING} _REQUEST(=|[|\%[0-9A-Z]{0,2}) # Send all blocked request to homepage with 403 Forbidden error! RewriteRule ^(.*)$ index.php [F,L] # ########## End - Rewrite rules to block out some common exploits RewriteBase / # condizioni aggiunte da me successivamente RewriteCond %{HTTP_HOST} ^dediche\.org$ RewriteRule (.*) (quì c'è http www).dediche.org/$1 [R=301,L] #condizioni native RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !^/index.php RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ RewriteRule (.*) index.php RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] #
-
Inserendolo alla fine quale problema si presenta?
-
Se lo inserisco alla fine non succede nulla ma comunque non effettua nessun rewrite dei link. Ho provato a togliere la 'L' dall'ultima regola, che se non sbaglio dice al server di non guardare le altre regole che seguono, ma mi da questo errore quando carico la pagina: "You don't have permission to access /.html on this server". E nella barra degli indirizzi riscrive questo link: "(http www) dediche.org/.html". No sono molto ferrato con le regexp ma prima o poi devo mettermi a studiarle, ce l'ho in programma ma non ho mai tempo..