Slim Framework路由在我的代码中不起作用

时间:2014-08-05 21:02:48

标签: php routes slim

我是新手,我遇到以下代码问题:

<?php

require_once 'vendor/autoload.php';
require_once 'lib/controller/Root.php';
require_once 'lib/controller/General.php';

$app = new \Slim\Slim(array(
    'debug' => true,
 ));

$root_controller = new Root();
$general_controller = new General();

$app->map('/', function() use ($app, $root_controller) {
    $root_controller->index();
})->via('GET', 'POST');

$app->map('/vorstand', function() use ($app, $general_controller) {
    $general_controller->vorstand();
})->via('GET', 'POST');

$app->map('/satzung', function() use ($app, $general_controller) {
    $general_controller->satzung();
})->via('GET', 'POST');

$app->run();
?>

我使用的是瘦框架,每当我得到&#34;未找到&#34;我就无法调用路径localhost / vorstand或localhost / satzung。我没有解释:/只有localhost,这意味着路线&#34; /&#34;的工作原理。

1 个答案:

答案 0 :(得分:0)

对于Apache服务器,需要检查两件事。

1.目录中的.htaccess文件(与index.php相同的目录)包含:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]

2.您还需要一个目录指令来启用.htaccess文件并允许使用RewriteEngine指令。这有时在httpd.conf文件中全局完成,但通常最好将指令限制在虚拟主机中,方法是将其封装在VirtualHost配置块中。这通常在您的配置中以以下形式设置:

<VirtualHost *:80>
    ServerAdmin me@mysite.com
    DocumentRoot "/path/www.mysite.com/public_html"
    ServerName mysite.com
    ServerAlias www.mysite.com

    #ErrorLog "logs/mysite.com-error.log"
    #CustomLog "logs/mysite.com-access.log" combined

    <Directory "/path/www.mysite.com/public_html">
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

AllowOverride All添加到您的DocumentRoot目录。