J'ai expérimenté avec le framework de routage léger NiceDog PHP, qui achemine comme ceci: fichierURL du site à l'aide d'un PHP cadre « assez url »
R('entries/(?<id>\d+)')
->controller('Entries_Controller')
->action('show')
->on('GET')
Maintenant, le .htaccess
est mis en place pour faire cette redirection comme si :
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
Mon problème est quand je veux faire une URL quelque part, il semble impossible de le faire.
Dire que je l'ai demandé la page entries/5
, et sur cette page, je voudrais créer un lien vers une autre entrée entries/6
:
<a href="entries/6">Next Entry</a>
Cela résout à l'adresse http://localhost/folder/to/project/entries/5/entries/6
pas ce que je veux.
Le /entries/6
href relierait à http://localhost/entries/6
pas non plus ce que je veux.
Pour contourner ce problème, j'ai créé une fonction pour gérer ce problème:
function url($route) {
return "http://localhost/folder/to/project/$route";
}
Alors je peux maintenant écrire
<a href="<?= url('entries/6') ?>">Next Entry</a>
qui relie maintenant à http://localhost/folder/to/project/entries/6
, ce qui est exactement ce que je veux.
Cependant, je dois le faire pour TOUS les liens sur le site, et il semble qu'il pourrait y avoir une meilleure solution qui n'implique pas une URL créée en externe.
Existe-t-il un "meilleur" moyen de résoudre ce problème? Est-ce un problème "commun" avec les frameworks PHP? (Il semble que ce serait)
J'ai essayé ceci.Cela ne fait pas de différence, car le navigateur résout l'URL. –