- Home
- Categorie
- Coding e Sistemistica
- HTML e CSS
- Domanda su file .htaccess
-
Domanda su file .htaccess
Spero 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$ /prova
Il 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?