2009-01-11 5 views
2

Si je le fais en tapant /?id=some_text dans url alors le script index.php fonctionne comme il shuld mais si je le fais /some_text alors index.php reçoit toujours l'identifiant pour avoir la valeur "index". J'ai d'abord eu RewriteRule ^([^/]+) ?id=$1 mais j'ai retourné "Internal Server Error" à la place de la page web, puis je l'ai changé en RewriteRule^([az] +) index.php? Id = $ 1 et j'ai arrêté la page d'erreur de récitation mais le script a commencé pour recevoir "index" comme valeur peu importe ce que j'ai tapé

Cette règle a fonctionné sur la machine locale en utilisant MAMP, mais quand je l'ai téléchargé sur le serveur il a cessé de fonctionner.

fichier .htaccess pour ce dossier ne contient que cette règle

RewriteEngine on 
RewriteRule ^([^/]+) ?id=$1 

Répondre

1

Je crois qu'il essayait probablement récursif par index.php car il semble correspondre à la règle.

Essayez:

RewriteEngine On 
RewriteCond %{REQUEST_URI} !index 
RewriteRule ^([^/]+) index.php?id=$1 [L] 

Le RewriteCond est de veiller à ne pas appliquer la règle aux résultats de lui-même. Et [L] est de s'assurer qu'il n'essaie pas d'appliquer une autre règle.