htacess e due parametri di post

Ho sviluppato un piccolo framework MVC personalizzato per il mio sito web. è index.php check $ _POST ['page'] & $ _POST ['sottopagina'] e include file php relativo per parametro specificato.

Es: index.php? Page = foods (questo include view / foods.php)

Es: index.php? Page = foods & subpage = pizza (questo include view / foods / pizza.php)

Ora voglio pulire i miei URL usando .htaccess. Ho provato alcuni methods per passare il secondo parametro. Ma ho fallito. Funziona bene …

RewriteEngine on RewriteRule ^([^/\.]+)?$ index.php?page=$1 [L] 

Ma quando ho provato a passare il secondo parametro non funziona bene. Questo cambia il path css / js / iamges.

 RewriteEngine on RewriteRule ^([^/\.]+)?$ index.php?page=$1 RewriteRule ^([^/\.]+)/([^/\.]+)?$ index.php?page=$1&sub=$2 

Per favore, chiunque può aiutarmi a risolvere questo? 🙂

Se si utilizza il flag QSA (Query String Apend), è sufficiente passare l'intera string di richiesta a un file di indice:

QSA – Aggiunge qualsiasi string di query dall'URL di richiesta originale a qualsiasi string di query creata nella destinazione di riscrittura

Quindi la tua regola sarebbe simile a questa –

 RewriteRule %{REQUEST_FILENAME} !-d RewriteRule %{REQUEST_FILENAME} !-f RewriteRule ^(.+)$ index.php?uri=$1 [QSA,L] 

Nel tuo file di indice puoi .explode() con le barre –

 $splitArr = explode('/',$_GET['uri']); 

E / o usa la function built in parse_url()http://www.php.net/manual/en/function.parse-url.php

parse_url – Analizza un URL e restituisce i suoi componenti

La maggior parte dei riscrittori url di questo tipo esclude esplicitamente file / directory effettivamente esistenti:

 RewriteRule %{REQUEST_FILENAME} !-d RewriteRule %{REQUEST_FILENAME} !-f 
 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f [OR] RewriteRule ^public/(js|css|images)(/.*|$) - [L] RewriteRule ^(.+)$ index.php?page=$1 [QSA,L] 

Ecco come finalmente l'ho fatto !!!