J'utilise le ToroPHP pour le routage.Routage ToroPHP - action 404
- Docs:https://github.com/anandkunal/ToroPHP/blob/master/README.md
- Source:https://github.com/anandkunal/ToroPHP/blob/master/src/Toro.php
Mon code:
Toro::serve(array(
"/" => "home",
));
Toro::serve(array(
"/website/:string" => "website",
));
// Fired for 404 errors
ToroHook::add("404", function() { echo '404 error'; });
Plus CodeToro: serve va à cette classe, fonctionne très bien, pour les deux home
et website
.
class home {
function get() {
echo 'My home';
}
}
class website {
function get($slug) {
echo $slug;
}
}
.htaccess
Voici comment mon fichier htaccess ressemble. C'est juste un peu réécrit pour fonctionner sur localhost.
Regardez la dernière ligne ...
RewriteEngine On
RewriteBase /my_localhost_dir/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php)
RewriteRule ^(.+)$ index.php/$1 [L]
Problème
Si je vais à une page que j'ai installé avec Toro::serve
, cela fonctionne très bien.
Si je vais à une URL qui n'est pas définie, cela me donne un écran blanc.
Je m'attendrais à ce qu'il me donnerait "erreur 404" par le crochet que j'ai ajouté. Qu'est-ce que je fais de mal?
Exemple: Si je vais à/nocontent/il me donne un écran blanc, et la réponse 200 ok.
Réécrivez-vous toutes les demandes dans les sous-répertoires à index.php? Sinon, votre requête n'atteindra pas PHP car Apache ne trouve pas le fichier spécifié. – alexn
@alexn J'ai mis à jour mon code avec/website/qui fonctionne également. Il fait écho à ma limace 'peu importe' quand je vais sur/website/whatever /. Cependant/nocontenthere/donne un écran blanc. Je n'utilise pas de dossiers, juste des URL virtuelles, mais les classes qui fonctionnent sont incluses dans un dossier mais cela ne devrait pas importer? –