2011-11-22 13 views
7

È una longshot, ma spero di trovare una soluzione semplice per un bug bizzarro che si manifesta solo quando la stringa di query viene omessa/dedotta dall'applicazione.mod_rewrite solo su GET

Prima di scavare in profondità in mille righe di javascript di terze parti miniate, vorrei scoprire se posso applicare automaticamente la querystring utilizzando mod_rewrite.

RewriteRule ^index\.php$ index.php?module=Home&action=index 

Ora, questo dovrebbe funzionare bene, tranne qualche volta saranno pubblicati tutti i dati in modo Ho bisogno di un RewriteCond quindi la regola sarà solo il fuoco su GET richieste, e non POST richieste.

È possibile?

risposta

10

Aggiungi questa condizione ...

RewriteCond %{REQUEST_METHOD} !POST 

... di non corrispondere POST richieste.

+0

sapevo che doveva essere qualcosa di simile. Ho esaminato i documenti e sono arrivato a mani vuote. Apprezzo l'aiuto! –

3

Da the docs:

  • Server-variabili: sono queste variabili della forma %{ NAME_OF_VARIABLE } dove NAME_OF_VARIABLE può essere una stringa preso dal seguente elenco:

    ...

collegamento & richiesta:
...
REQUEST_METHOD

Quindi, sì. Utilizzare RewriteCond con quella variabile del server.

+0

Grazie mille! –

+1

+1 perché l'unica ragione per cui ho saputo la risposta è perché me l'hai detto una volta :) – alex

9

Suggerirei di essere esplicito e di attivare solo RewriteRule quando il metodo di richiesta è GET, piuttosto che ogni volta che non è POST in quanto vi sono numerosi altri metodi. Quindi, la sua condizione riscrittura potrebbe essere la seguente:

RewriteCond %{REQUEST_METHOD} =GET 

RewriteRule ^index\.php$ index.php?module=Home&action=index