Stavo cercando di rimuovere le estensioni PHP dal mio sito web. Quando l'utente richiede un file PHP, il PHP verrà rimosso e l'utente verrà reindirizzato e quando l'utente digita un URL senza PHP, verrà pubblicato il file PHP effettivo. Questo ha funzionato bene tranne quando c'è un parametro GET nell'URL. Le mie regole sono le seguenti:Come utilizzare Apache Mod_rewrite per rimuovere l'estensione php, preservando i parametri GET?
# remove .php ONLY if requested directly
RewriteCond %{THE_REQUEST} (\.php\sHTTP/1)
RewriteRule ^(.+)\.php$ /$1 [R=301,L,QSA]
# remove trailing slash ONLY if it is not an existing folder
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# rewrite to FILENAME.php if such file does exist and is not a folder
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ /$1.php [L,QSA]
Ho pensato che questo dovrebbe già essere in grado di rimuovere php, anche quando non v'è alcun parametro GET, ma non è riuscito. Ho anche provato qualcosa di simile:
RewriteCond %{THE_REQUEST} (\.php\sHTTP/1)
RewriteRule ^(.)\.php(.)$ $1$2 [R=301,L,QSA]
Inoltre non ha funzionato, il php è ancora lì. Ma se provo:
RewriteRule ^(.)\.php(.)$ $1$2 [R=301,L,QSA]
cioè, la rimozione della RewriteCond, l'estensione PHP viene rimosso ed i parametri sono stati conservati, ma la pagina non sarà servita come browser dice che ci sono stati troppi reindirizzamenti.
Qualche idea per favore?
in RewriteRule (o è solo un noob come me lol?):/$ 1 Genera URL rotta, utilizzare $ 1 con fuori / – StefanoCudini