Salut,
Je tente de ré-écrire toute URL ne désignant pas un fichier comme un argument au fichier index.phpet cela, sans utiliser de fichier
.htaccess`.
Une requête vers http://www.example.com/test doit devenir http://www.example.com/index.php?q=/test.
J'utilise Debian Squeeze (6.0) et Apache 2.2.16. Voici mon fichier de configuration :
<VirtualHost *:80>
DocumentRoot /var/www/example
ServerName www.example.com
ServerAlias example.com
ErrorLog /var/log/apache2/error/example.log
CustomLog /var/log/apache2/access/example.log combined
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^/(.*) http://www.example.com/$1 [L,R=301]
</IfModule>
<Directory "/var/www/example">
AllowOverride None
Options -Indexes +FollowSymLinks
DirectoryIndex index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^/(.*)$ index.php?q=$1 [L,QSA]
</IfModule>
</Directory>
</VirtualHost>
si le premier appel à mod_rewrite
dans VirtualHost change bien example.com en www.example.com, le second appel dans
Directory ne semble pas fonctionner et une requête vers http://www.example.com/test résulte en une erreur 404.
Voici ce que l'on peut voir dans les logs :
(2) init rewrite engine with requested uri /test
(3) applying pattern '^/(.*)' to uri '/test'
(4) RewriteCond: input='www.example.com' pattern='!^www\.example\.com $' [NC] => not-matched
(1) pass through /test
(3) [perdir /var/www/example/] strip per-dir prefix: /var/www/example/test -> test
(3) [perdir /var/www/example/] applying pattern '^/(.*)$' to uri 'test'
(1) [perdir /var/www/example/] pass through /var/www/test/test
File does not exist: /var/www/test/test
Qu'ai-je manqué ?
# 200 OK
Posté par Spack . Évalué à 3.
Bien j'ai trouvé la source de mon erreur. Il s'agit de l'expression régulière qui est incorrecte.
doit devenir
[^] # Re: 200 OK
Posté par ze_lionix (site web personnel) . Évalué à 1.
Comme quoi une bonne nuit de sommeil… ça aide… :o)
Fuse : j'en Use et Abuse !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.