2016-08-30 42 views
3

私はPHPのnoobieです。私はAltoRouterを使用して簡単なルーティングを設定しています。以下はルートフォルダにあるindex.phpと.htaccessファイルです。つまり、/ var/www/html/ 私はApache2を使ってウェブページを提供しています。PHP AltoRouterはベースURLのみを提供します

のindex.php

<?php 
require 'vendor/AltoRouter.php'; 

$router = new AltoRouter(); 
// map homepage 
$router->map('GET', '/', function() { 
    require __DIR__ . '/views/home.php'; 
}); 

$router->map('GET|POST', '/login', function() { 
    require __DIR__ . '/views/login.php'; 
}); 

$router->map('GET', '/signup', function() { 
    require __DIR__ . '/views/signup.php'; 
}); 

$match = $router->match(); 

// call closure or throw 404 status 
if ($match && is_callable($match['target'])) { 
    call_user_func_array($match['target'], $match['params']); 
} else { 
    // no route was matched 
    header($_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found'); 
} 
?> 

の.htaccess

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

は問題:私はローカルホストにアクセスすると 、 'home.php' の務めますが、私は 'ローカルホスト/ログイン' 訪問するとき、または'localhost/signup'、404エラーが表示されます。

答えて

1

localhost/login.phpをご覧ください。お試しください。

+0

同じ404エラーが発生しています。 – user2379271

1

変更このコードは、次の.....

$router->map('GET', '/views', '/views/home.php','home'); 

$router->map('GET', '/views/login', '/views/login.php','login'); 

$router->map('GET', '/views/signup', '/views/signup.php','signup'); 
+0

いいえ、役に立たない。まだ取得中404 – user2379271

+0

https://www.longren.io/basic-routing-in-php-with-altorouter/ – ashik

+0

ここに質問を投稿する前にリンクからすべてを試しましたが、正確にどこに問題があるのか​​はわかりません。 – user2379271

1

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

$router->map('GET|POST', '/login', function() { 
    require __DIR__ . '/views/login.php'; }); 

$router->map('GET', '/signup', function() { 
    require __DIR__ . '/views/signup.php'; }); 

あなたの.htaccessファイルは、それがAltoRouterやPHPによって引き起こされていない、無視されているように見えます。

ご使用のオペレーティングシステムに応じて、システム上で.htaccessファイルをアクティブにする方法を検索する必要があります。

0

私は同じ問題に直面しており、ルータにbase_pathを追加することで解決できます。私は、ディレクトリhttp://localhost/myapp/と私の私の公開ディレクトリにある私のaltorouteプロジェクトがindex.phpファイルhttp://localhost/myapp/public/index.phpベースパスが

$router->setBasePath('/myapp/public'); 
            ^----don't but any/here 

すべきであり、それはそれだを持って考えてみましょう。

+0

http://stackoverflow.com/questions/40253868/altorouter-cant-execute-routes –

関連する問題