我在基本的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]
的形式访问它
答案 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';
}