Altorouter не может выполнять маршруты

я использую Altorouter в базовом приложении PHP (без фреймворка), но почему-то это не работает. Ниже приведены детали:

index.php

<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
require_once __DIR__ . '/vendor/autoload.php';

$router = new AltoRouter();

$router->map( 'GET', '/', function() {
include __DIR__ . 'home.php';
});

print "Done";

Это печатает Готово и нет ошибок в журнале php.

Htaccess

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]

Я получаю доступ к нему как `HTTP: // локальный / дом / MyApp /

1

Решение

Хорошо, я понял проблему. URL, к которому я хочу получить доступ:

http://localhost/home/myapp/

Altorouter не знает о корневом URL, поэтому необходимо установить basePath. это делается как:

$router->setBasePath('/home/myapp');

Обратите внимание, что нет трейлинг / следует положить в setBasePath потому что мы поместим это в наш map функционировать так:

$router->map('GET', '/', 'home.php', 'home');
$match = $router->match();
if ($match) {
require $match['target'];
} else {
header("HTTP/1.0 404 Not Found");
require '404.html';
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]