所以我最近,就像在大约一天前,询问了为什么我的routes were not working for slim并根据答案,我做了相应的更改,但除非我做错了路线,否则他们不工作。< / p>
如果我们查看我已设置的路由文件(index.php
文件中需要),我们可以看到:
<?php
use \ImageUploader\Controllers as Controller;
/** ---------------------------------------------------------------- **/
// Routes.
//
// Routes are defined here. Nothing should happen in a route other then
// Calling acontroller based action, such as: indexAction.
/** ---------------------------------------------------------------- **/
$app = new \Slim\Slim();
$app->get('/', function(){
Controller\HomeController::showHome();
});
$app->get('/signup', function(){
Controller\SignupController::showSignupForm();
});
$app->post('/signup/new', function() use ($app){
var_dump($app->request()->post('username'));
var_dump($app->request()->post('password'));
});
// Don't touch.
$app->run();
我列出了几条路线。现在我可以转到第一个,它会显示HomeController::showHome
的内容,但如果我尝试导航到http://localhost/image-upload/signup
,我会得到:
Not Found
The requested URL /image-upload/signup was not found on this server.
现在我的项目不在根目录中,它位于图片上传中,所以当我去localhost / image-upload时,我看到了/
路由执行结果。
我的htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /image-upload/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
</IfModule>
我的index.php
文件也是如此:
<?php
/** ---------------------------------------------------------------- **/
// This is the core app.
/** ---------------------------------------------------------------- **/
if (!file_exists('bootstrap.php')) {
throw new \Exception('Where is the bootstrap.php?');
}
require_once 'bootstrap.php';
/** ---------------------------------------------------------------- **/
// Routing.
/** ---------------------------------------------------------------- **/
require_once 'app/routes.php';
我做错路由还是......
修正了重写基础,假设是/ image-upload /。这怎么都没有解决任何问题。 Mod Rewrite已启用并打开。
有人提出了苗条核心路线的待定image-upload/
(或类似)。这没有用。实际上它打破了路由。
答案 0 :(得分:2)
你可以尝试一下吗?
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php?/$1 [L,QSA]