2010-10-12 3 views
1

Sur ma page principale, les liens de navigation sont les suivantes:mod_rewrite déconner la navigation sur le site Liens

  • localhost/inventaire/ajouter
  • localhost/inventaire/vue

Le code ce sont:

<a href='add'>Add Record</a> 
<a href='view'>View Records</a> 

et mon fichier .htaccess est:

RewriteEngine on 
RewriteRule ^([^/\.]+)/?$ ./index.php?url=$1 [L] 
RewriteRule ^([^/\.]+)/?/([^/\.]+)/?$ ./index.php?url=$1&id=$2 [L] 

Le problème que j'ai est que pour les enregistrements, il existe un lien d'édition qui les prend à:

  • localhost/inventaire/modifier/1

Pour enregistrer un, et le code pour ce lien est:

<a href='edit/1'>Edit</a> 

ce qui est bien, sauf que maintenant les liens de navigation les prendre à:

  • localhost/inventaire/modifier/ajouter
  • localhost/inventaire/modifier/vue

Parce qu'il pense qu'il est dans un répertoire 'modifier'.

Est-ce que quelqu'un connaît une idée pour surmonter ce problème?

Merci!

Répondre

0

Ce n'est probablement pas parce que .htaccess, mais la différence entre les liens relatifs par rapport absolu. C'est-à-dire vos liens de navigation devraient probablement être préfixées avec /, comme:

<a href='/inventory/add'>Add Record</a> 
+0

Merci pour votre réponse Jason, mettre le/fait le lien par rapport à la racine du serveur. Je suppose que je pourrais avoir un fichier de configuration et tout sous-répertoire dans lequel le script s'exécute devrait être assigné, mais j'espérais éviter cela. –

+0

Désolé. Il s'agit d'URL Web 101. Si le lien est simplement 'add', il sera toujours relatif au répertoire courant. Je ne pense pas que vous aurez beaucoup de chance de créer une règle de réécriture qui contourne cela. –

+0

OK merci, ce n'était pas la réponse que j'espérais mais c'est la réponse que j'attendais malheureusement. –