Comme je pense plutôt que vous voulez réécrire les demandes de /script/3295
-/script.php?id=3295
et non l'inverse, essayez ceci:
RewriteRule ^/script/([0-9]+)$ /script.php?id=$1
Mais si vous voulez vraiment réécrire script.php?id=3295
-script/3295
, essayez ceci:
RewriteCond %{QUERY_STRING} ^(([^&]*&)*)id=([0-9]+)&?([^&].*)?$
RewriteRule ^/script\.php$ /script/%3?%1%4
Et si vous voulez utiliser cette règle dans un fichier .htaccess, retirez la barre oblique du motif.
Pour votre deuxième question: Le test RewriteCond
directives si l'URI demandé ne peut pas être mis en correspondance avec un fichier régulier existant (!-f
), et non à un répertoire existant (!-d
) et non à un lien symbolique existant (!-l
).