[APACHE 2][mod rewrite] rewrite rule non interpreté
bonjour a tous,
j'ai un soucis concernant une rewrite rule.
je fonctionne avec des vhosts, et pour l'un d'entre eux, je souhaite definir des regles de reecriture.
voici la definition de mon vhost:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
NameVirtualHost *:80
#
<VirtualHost *:80>
ServerAdmin root@localhost
DocumentRoot "D:/www/"
ServerName mon_host
AccessFileName .htaccess
php_value "short_open_tag" Off
php_value "include_path" "./;D/php/PEAR/;D:/www/libs/"
</VirtualHost> |
j'ai verifié avec le phpinfo que le mod_rewrite etait bien chargé, pas de soucis.
j'ai placé dans mon dossier D:/www/ un fichier .htaccess qui contient la regle suivante:
Code:
1 2 3 4 5
|
rewrite Engine On
#RewriteRule ^.+$ http://www.google.com
RewriteRule ^http:\/\/mon_host\/([a-z]{2})\/tutorial_([0-9]+)\/page_([0-9]+)\.html$ http://mon_host/index.php?tutoId=$2&page=$3&lang=$1
rewrite Engine Off |
j'obtiens une 404 quand je demande http://mon_host/fr/tutorial_1/page_4.html
j'ai testé avec ce script php si mon pattern etait bon:
Code:
1 2 3 4 5 6 7 8 9 10
|
<?php
$url = "http://mon_host/fr/tutorial_1/page_4.html";
$pattern = "^http:\/\/mon_host\/([a-z]{2})\/tutorial_([0-9]+)\/page_([0-9]+)\.html$";
if (preg_match("/$pattern/", $url, $matches)) {
echo "ok";
} else {
echo "not found";
}
?> |
il me sors bien que mon pattern est bon.
si je place une autre regle dans le fichier htacess qui est
Code:
1 2
|
RewriteRule ^.+$ http://www.google.com |
j'ai beau demander n'iimporte quelle adresse, je ne suis jamais redirigée vers google.
En gros, j'ai l'impression que mon fichier htacess n'est pas interpreté.
Comment puis je lui definir? est ce qu'il existe une configuration particuliere pour la definition des vhosts?
Ou est ce que la syntaxe de mes regles de reecriture n'est pas bonne? il manquerait un flag? une condition?
merci d'avance pour votre aide, j'ai eu beau chercher sur le net, je n'ai rien trouvé qui se rapprocherait de mon probleme :(