2011-11-17 3 views
1

J'ai un fichier appeléRewriteRule pour même nom

details.php

et j'ai essayé de mettre en htaccess la ligne suivante

RewriteRule ^details/(.+)/(.+)$ /details.php?id=$1&name=$2 [NC] 

et il ne fonctionne pas avec le même nom qui est actuellement ciblée

UPDATE 1:

problème résolu avec par ajoutant -MultiViews

options + FollowSymLinks -MultiViews

+1

que signifie **? – diEcho

+0

try RewriteRule ^/details /(.+)/(.+)$ /details.php?id=$1&name=$2 [NC] – david

+0

opsi, ** gras: PI a essayé d'attirer l'attention sur le mot "détails" – Anonymous

Répondre

0

supprimer le "* " s. "" est un caractère spécial signifiant "zéro ou plus du caractère précédent". Qu'il y en ait deux dans une rangée d'endroits dans votre expression régulière est très irrégulier, sinon incorrect. Si en effet vous avez un fichier nommé details.php, vous n'en avez pas non plus besoin.

+0

Désolé, j'ai essayé de mettre le code en gras autour du mot «détails» .. – Anonymous

0

Vous devriez essayer:

RewriteRule ^details/([0-9]+)/(\w+)/?$ /details.php?id=$1&name=$2 [NC,L] 

Où:

id = limite l'identifiant seuls les numéros
nom = limite le seul nom aux mots + nums

+0

nop..still le même ... Note: Undefined index: id in public_html/details.php on line 7 Remarque: Indéfini index: nom dans public_html/details.php à la ligne 8 – Anonymous

0

Récemment , J'ai eu un problème où j'avais besoin d'une réécriture d'url mais je n'arrivais pas à comprendre pourquoi il échouait. Puis je suis tombé sur ce fil et cela a réglé mon problème.

Le problème est que Multiviews est activé par défaut sur mon hébergeur. This Page explique en détail pourquoi cela ne correspond tout simplement pas avec RewriteRules. J'ai ajouté -MultiViews à cela pour résoudre mon problème:

Options +FollowSymLinks -MultiViews 

RewriteEngine On 
RewriteBase /devpath/SampleCustomerName/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !=/favicon.ico 
RewriteRule^index.php [L] 

Si je voulais accéder à/DEVPATH/SampleCustomerName/au sujet de tout about.php résidé dans ce dossier, je recevrais une erreur 404.

Avec + Multiviews

« Il peut choisir la meilleure représentation d'une ressource en fonction des préférences fournis par navigateur pour le type de support, langues, jeu de caractères et l'encodage. Il implémente également quelques fonctionnalités pour gérer plus intelligemment les requêtes des navigateurs qui envoient des informations de négociation incomplètes. ". "Le point est que la directive Multiviews interféré avec notre règle de réécriture.La solution pour que notre règle de réécriture fonctionne correctement était donc d'ajouter une directive personnalisée à l'hôte en question sans l'option Mutliviews."