2010-02-03 5 views
1

J'utilise le fichier .htaccess ci-dessous pour forcer une redirection vers un "préfixe de langue" si aucun n'est trouvé dans l'URL. Donc, si domain.com/news est tapé, il redirige vers domain.com/fr/news - cela fonctionne très bien..htaccess problème

Cette règle ne doit pas être appliquée à certains dossiers tels que les images, swf et myphp. Cela fonctionne bien pour les deux premiers, donc quand j'accède à domain.com/swf je vois une liste de contenu de répertoire et "en" n'est pas ajouté. Mais, cela ne fonctionne pas pour le dossier "myphp" (il s'agit d'une installation de phpmyadmin). Normalement, il chargerait myphp/index.php mais l'ajout du nom de fichier à la règle ne fait aucune différence. La page continue à charger mais rien ne se passe. Quelqu'un sait-il pourquoi?

RewriteEngine On 
RewriteBase/

#force redirect to language specific page 
RewriteCond $1 !^(en|fr|nl)$ 

#dont apply the rule to the assets folders 
RewriteCond $1 !^images$ 
RewriteCond $1 !^swf$ 
RewriteCond $1 !^myphp$ 

#redirect to default EN page if no language param is present in URI 
RewriteRule ^([^/]+)/.* /en/$0 [L,R=301] 

#remove index.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC] 
RewriteRule ^(.*)$ /index.php?$1 [L] 

Répondre

1

me semble que vous pourriez rencontrer des problèmes en raison d'essayer de correspondre à la fin de la ligne ($) après le nom du dossier quand il y a plus dans l'URL. Que se passe-t-il si vous laissez le signe de désactivation de vos noms de dossier?