Altorouter无法执行路由

时间:2016-10-26 04:40:14

标签: php .htaccess altorouter

我在基本的PHP应用程序(无框架)中使用Altorouter,但不知怎的,它无法正常工作。以下是详细信息:

的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://localhost/home/myapp/

的形式访问它

1 个答案:

答案 0 :(得分:2)

好的,我发现了这个问题。我想访问的网址是:

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';
}