Domanda

Ho le seguenti regole di riscrittura:

RewriteRule ^([a-zA-Z0-9]*)/([a-zA-Z0-9]*)\\.php\?(.*)  /$2.php?shop=$1&$3 [NC,L]
RewriteRule ^([a-zA-Z0-9]*)/([a-zA-Z0-9]*)\\.php        /$2.php?shop=$1 [NC,L] 
RewriteRule ^([a-zA-Z0-9]*)/$  /index.php?shop=$1 [L,NC] 
RewriteRule ^([a-zA-Z0-9]*)$   /index.php?shop=$1 [L,NC] 

Il risultato di cui dovrebbe reindirizzare il seguente:

www.site.com/Sells 
    -> /index.php?shop=Sells [works] 

www.site.com/Sells/menu.php?Cat=1 
    -> /menu.php?shop=Sells&Cat=1 [failing] 
    -> /menu.php?shop=Sells [which is 'wrong'] 

L'ultimo esempio dovrebbe ottenere riscontro riscrittura [1] ...

Ho testato le regole con il tester regex fornito con scimmia e ha scoperto che la fuga ? e . non sembra funzionare. Sono un po 'sconcertò e apprezzerebbe chiunque potrebbe far luce sul motivo per cui questo fuga non sta funzionando.

Un sacco di grazie in anticipo.

È stato utile?

Soluzione 3

QSA bandiera mancava! si aggiunge la stringa di query e ho dimenticato di mettere in !!!

Le doppie barre che ho aggiunto come anteprima non stava mostrando i singoli!

Altri suggerimenti

RewriteRule ^([a-zA-Z0-9]*)/([a-zA-Z0-9]*)\\.php\?(.*)  /$2.php?shop=$1&$3 [NC,L]
RewriteRule ^([a-zA-Z0-9]*)/([a-zA-Z0-9]*)\\.php        /$2.php?shop=$1 [NC,L] 

Troppo fuga. Cambiare \\.php a \.php.

Sembra che tu sfuggire alla \ che è destinato a sfuggire al. (Avete \. Che viene letto come \ e qualsiasi lettera / simbolo)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top