- Home
- Categorie
- Coding e Sistemistica
- Coding
- Domanda su file .htaccess
- 
							
							
							
							
							
Domanda su file .htaccessSpero che questa sia la sezione giusta. 
 Ho una pagina, ad esempio: prova.php.
 Questa pagina al trasformo in prova con un regola di rewrite:
 [CODE][RewriteRule ^prova$ /prova.php /CODE]
 Il problema è che in realtà la pagina non viene rasformata in prova, ma semplicemente abilito la parola prova e la faccio corrispondere a quella pagina,
 ovvero scrivendo sito.it/prova ottengo l'apertura di prova.php, con l'indirizzo modificato in sito.it/prova, se però scrivo sito.it/prova.php la pagina
 la pagina aperta è sempre prova.php ma l'indirizzo che vedo è prova.php.L'effetto che vorrei ottenere è il seguente: 
 1)scrivendo sito.it/prova si deve aprire sito.it/prova.php, mantenendo nell'indirizzo la dicitura sito.it/prova;
 2)scrivendo sito.it/prova.php si deve aprire la pagina prova.php, ma il link sulla barrra degli indirizzi deve cambiare in sito.it/prova.
 Sapete come si ottiene questo effetto?
 
- 
							
							
							
							
							
Aggiungere un redirect sempre con l'htaccess da prova.php a prova? 
 
- 
							
							
							
							
							
@Marinski said: Aggiungere un redirect sempre con l'htaccess da prova.php a prova? 
 Ho provato così:RewriteRule ^prova$ /prova.php RewriteRule ^prova.php$ /provaIl problema è che và in loop e fà richieste infinite di cambio link... 
 Quasi scordavo di scrivere che ho questa situazione anche se provo con un redirect 301.
 
- 
							
							
							
							
							
L'avevo fatto anch'io per un vecchio sito che ora ho rispolverato per vedere il codice del .htaccess... questo è il codice che ho trovato vedi se funziona! <IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] RewriteCond %{REQUEST_URI} (.*)/$ RewriteCond %{REQUEST_FILENAME}\.html -f RewriteRule (.*)/$ $1.html RewriteCond %{REQUEST_URI} (.*)/$ RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule (.*)/$ $1.php RewriteCond %{REQUEST_URI} (.*)/$ RewriteCond %{REQUEST_FILENAME}\.cgi -f RewriteRule (.*)/$ $1.cgi RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.html -f RewriteCond %{REQUEST_FILENAME}\.php -f RewriteCond %{REQUEST_FILENAME}\.cgi -f RewriteRule .* %{REQUEST_FILENAME}/ [R=301,L] </IfModule>trasforma i file.php, .html e .cgi in file/ 
 
- 
							
							
							
							
							
L'ho provato e ho capito come funziona, in pratica se ho una pagina con indirizzo: /prova/prova1.php posso richiamarla anche scrivendo /prova/prova1. 
 Molto carino perchè agisce su tutto, io invece agivo quasi pagina per pagina.
 Tuttavia se scrivo /prova/prova1.php l'indirizzo sulla barra rimane invariato, non si trasforma all'invio in /prova/prova1.
 Come faccio senza creare loop?