我的index.php
中有这个代码 <?php
require 'vendor/autoload.php';
$router = new \Klein\Klein();
$router->respond('/hello-world', function () {
return 'Hello World!';
});
$router->dispatch();
和htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /index.php [L]
当我尝试打开/ hello-world(或index.php / hello-world)时,它只给我一个空白的白色屏幕。 如果我只有这条路线:
$router->respond(function () {
return 'All the things';
});
它适用于index.php /但不适用于/
我找了很久但却看不出什么错?
答案 0 :(得分:1)
尝试此操作并使用您的应用程序的真实路径更改/ path / to / app
define('APP_PATH', '/path/to/app');
require_once 'vendor/autoload.php';
$request = \Klein\Request::createFromGlobals();
$request->server()->set('REQUEST_URI', substr($_SERVER['REQUEST_URI'], strlen(APP_PATH)));
$klein = new \Klein\Klein();
$klein->respond('GET', '/hello', function () {
return 'Hello World!';
});
$klein->dispatch($request);
答案 1 :(得分:0)
看起来重写不起作用。只是尝试在没有任何框架的情况下回复一些简单的东西:
index.php (只有这三行)
<?php
echo 'does it work?';
?>
然后尝试调用/ hello-world之类的东西。如果它没有显示您的消息,可能您的主机不支持mod_redirect。
您应该能够使用函数apache_get_modules
显示所有已激活的apache模块:
<?php
print_r(apache_get_modules());
?>
应该列出mod_rewrite。