Question

Je les règles de réécriture suivantes:

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] 

Le résultat dont devrait rediriger les éléments suivants:

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'] 

Le dernier exemple devrait s'apparié récrivent [1] ...

J'ai testé les règles avec le testeur regex livré avec le singe et a constaté que échapper ? et . ne semble pas fonctionner. Je suis un peu déconcerté et apprécierait tous ceux qui pourrait faire la lumière sur les raisons de cette Évasion ne fonctionne pas.

Les charges de remerciements à l'avance.

Était-ce utile?

La solution 3

drapeau QSA a disparu! il ajoute la chaîne de requête et j'ai oublié de mettre dans !!!

Les doubles barres obliques, j'ai ajouté que l'aperçu ne montrait pas les simples!

Autres conseils

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] 

Trop échapper. Changement \\.php à \.php.

Vous semblez échapper à la \ qui est destiné à échapper à la. (Vous avez \. Qui est lu comme \ et toute lettre / symbole)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top