Plusieurs htaccess de la règle de réécriture
voici mon code pour .fichier htaccess
Options -Indexes
RewriteEngine On
RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-d
RewriteRule ^([a-z0-9]+)$ /profile.php?username=$1 [L]
RewriteRule ^([a-z0-9]+)$ /display.php?page=$1 [L]
Pour le premier, il fonctionne correctement et affiche comme ceci:
www.site.com/user
Le second ne fonctionne pas, normalement, est de l'afficher comme ça www.site.com/display.php?page=10. Je veux afficher la page comme ceci www.site.com/article
J'ai essayé différentes choses et pas de résultat. S'il vous plaît dites-moi comment faire pour travailler avec de multiples règles. Aussi, merci de me donner des conseils sur l'utilisation de ces fonctionnalités en php parce que je pense que j'ai fait quelque chose de pas vraiment bon. Mon code php pour l'utilisation de cette règle est la suivante:
<p><a class="button" href="/<?php echo $user_data['username']; ?>"> Profile</a></p>
Il fonctionne, mais c'est peut-être une meilleure façon de faire un lien vers profiter du htaccess.
Vous devez vous connecter pour publier un commentaire.
Les deux règles que vous avez un conflit, les modèles utilisés sont exactement la même, ce qui signifie, autres que les conditions qui obtenez seulement appliqué à la première règle, les deux règles sont totalement indiscernables.
Donné cette URL:
Est "
blah
" d'une page ou d'un utilisateur? Ne peux pas dire, parce que l'expression régulière pattern (^([a-z0-9]+)$
) pour les deux règles correspond à "bla". Donc, le premier sera toujours appliquée n'importe quel. Vous avez besoin d'ajouter quelque chose à la distinction entre les 2, y compris comme un "utilisateur" ou "page" dans l'URL:Et vos règles ressemblerait à:
utilisez [N] (suivant) de continuer à ajouter des règles à la même condition
et [L] (dernière) pour identifier la dernière règle
Je l'ai fait de travailler comme cela.
Après BEAUCOUP d'essais et d'erreur :
Le conseil que j'ai reçu était que
[L]
indique la dernière règle et[N]
moyens de continuer.