2010-11-22 5 views
0

J'ai un problème d'expression régulière dans mon htaccess. Je veux rediriger tous les paramètres $ _GET [ 'params'] sauf & js (css ce sont des dossiers), mais les $ _GET [ 'params'] est vide :(Problème Regexp dans htaccess

Par exemple, si i type: mydomain.com/son/an/exemple Ensuite $ _GET [ 'params'] =/son/an/exemple

Mais si je tape: mydomain.com/js/its/an/example Il doit être lu comme un dossier .

Alors, voici mon code:

RewriteRule /!(css|js)(.*) /index.php?params=$1 [L] 
+0

points d'exclamation dans une regex ne pas nier. Vous cherchez probablement quelque chose de plus comme un lookahead négatif (par exemple, '(?! Css | js)'). Mais si 'mod_rewrite' prend en charge cela dépend probablement de la configuration du serveur et peut provoquer des erreurs de serveur. – eyelidlessness

Répondre

0

Ok je l'ai trouvé ... Pas besoin de prendre si c'est un dossier ou non, je filtre avec ce natif -f et -d:!

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*) /index.php?params=$1 [L] 

;)

0

Si vous voulez le (.*) partie utiliser $ 2

Ou je suppose que vous pourriez utiliser (?:css|js) ce qui en ferait un groupe passif.

+0

Salut Kent, non ne fonctionne pas :( – CrazyMax

+0

@Crazy essayez-vous d'attraper la partie. * – Keng

+0

Résolu Keng thx pour votre approvisionnement :) – CrazyMax