2016-10-26 6 views
1

私は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] 

私は、[OK]をhttp://localhost/home/myapp/

+1

を:私たちはそのように私たちのmap機能でそれを置くので、何の末尾/setBasePathに置かれるべきではないがありますのでご注意ください

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

:それは次のように行われています。 '/home.php'; ' – Phil

+0

@Philはまだ動作しませんでした。 – Volatil3

+0

@Phil - yep。私は、 'require'を使う代わりに、' require'を使っています。あなたがインクルードされたファイルの配列のように戻った場合に私が見つけたインクルードの唯一の本当のメリットがあります。それ以外の場合、requireは失敗し、スラッシュが見つからないことを伝えます.bease __DIR__はパスに終了スラッシュを追加しません。 – ArtisticPhoenix

答えて

2

`としてそれにアクセスしています、私はこの問題を考え出しました。私がアクセスするURLは次のとおりです。basePathを設定する必要がありますので

http://localhost/home/myapp/

AltorouterはルートURLを知っていません。おそらく、 `__ DIR__が含まれるべき

$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'; 
} 
+0

'setBasePath 'はこれらの問題を引き起こしていますか? –

関連する問題