/ / Rimuovi la query GET in URL - .htaccess, mod-rewrite

Rimuovi la query GET in URL - .htaccess, mod-rewrite

ho fatto un .htaccess file che converte l'URL in una query di percorso. Funziona ma quando vado a qualcosa di simile: localhost/login Ho capito localhost/login?path=login. Come posso cambiarlo in modo che non veda il percorso nell'URL?

.htaccess

RewriteEngine On
RewriteCond $1 !^__init__.php
RewriteRule ^(.*)$ __init__.php?path=$1 [L,QSA]

risposte:

0 per risposta № 1

fa login.php esiste come un file fisico? Se è così, allora dovrai essere sicuro MultiViews è disabilitato. Prova quanto segue nella parte superiore del tuo .htaccess file:

Options -MultiViews

C'è una cartella chiamata login

Ah, questo sarà il problema. mod_dir con problema un reindirizzamento esterno da /login a /login/ (ad esempio, aggiungere una barra finale). Poiché un reindirizzamento è già stato emesso, la riscrittura interna ora diventa un reindirizzamento esterno (poiché lo stato HTTP e Location le intestazioni sono già state impostate).

È necessario modificare il nome di quella directory. O disabilitare questa funzione di mod_dir (ma ciò può causare ulteriori problemi). Ad esempio, nella parte superiore del tuo .htaccess file:

DirectorySlash Off