4

私は PHP の初心者です。AltoRouter を使用して簡単なルーティングを設定しています。以下は、ルートフォルダー、つまり /var/www/html/ にある私の index.php および .htaccess ファイルです。私は Web ページを提供するために Apache2 を使用しています。

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]

問題: localhost にアクセスすると「home.php」が表示されますが、「localhost/login」または「localhost/signup」にアクセスすると 404 エラーが発生します。

4

4 に答える 4

2

このコードを変更

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

以下で.....

$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');
于 2016-08-30T21:44:03.170 に答える
2

ぜひ一度おlocalhost/login.php試しください。

于 2016-08-30T21:15:00.333 に答える