1

基本的な 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 ログにDoneと no error が出力されます。

htaccess

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

` http://localhost/home/myapp/としてアクセスしています

4

1 に答える 1

2

OK、私は問題を理解しました。アクセスしたい URL は次のとおりです。

http://localhost/home/myapp/

Altorouterルート URL がわからないため、basePath を設定する必要があります。それは次のように行われます:

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

次のように関数に挿入するため、末尾を挿入/する必要がないことに注意してください。setBasePathmap

$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';
}
于 2016-10-26T05:04:13.757 に答える