Încearcă ceva de genul acesta:
DirectoryIndex index.php
Opțiuni -MultiViews
RewriteEngine Pornit
RewriteRule ^admin(?:$|/([^.]*))$ admin.php?uri=$1 [QSA,L]
RewriteRule ^([^.]+)$ index.php?uri=$1 [QSA,L]
Aceasta presupune că niciuna dintre adresele URL (care necesită rescriere) nu conține puncte (.
). Acest lucru evită necesitatea unei verificări a sistemului de fișiere pentru a se asigura că cererea nu se mapează la o resursă statică, care ar include în mod normal o extensie de fișier (delimitată de un punct).
MultiViews
trebuie să fie dezactivat (dacă nu este deja) deoarece solicitați o adresă URL /admin
acesta este numele de bază al fișierului în care rescrieți. Dacă MultiViews a fost activat, atunci /admin.php
ar fi apelat fără parametrul URL.
The QSA
(Query String Append) este necesar doar dacă vă așteptați la un șir de interogare la cererea inițială, care ar trebui să fie atașat la adresa URL rescrisă.
Va apela o solicitare pentru rădăcina documentului (pagina de pornire). index.php
fără cel uri
parametru.
Deoparte: Doar o notă de terminologie...
Dacă adresa URL acceptă ORICE ALLU parametru (altul decât /admin
)
Ceea ce numiți „parametru” aici este de fapt calea URL (sau segmentele de cale). URL Parametrii sunt perechile nume=valoare din șirul de interogare (la ce doriți să rescrieți cererea).
În exemplul dvs., rescrieți calea URL într-o valoare a parametrului URL.