我有像这样的文件夹结构
assets/
clients/
- assets/
- includes/
- .htaccess
- index.php
includes/
vendor/
views/
.htaccess
index.php
并且slim通常适用于该路径文件夹,但是如果我去 myroot.com/clients 期望它不受苗条控制,我的根文件夹的苗条会抛出404页。
奇怪的是,当我去 myroot.com/includes 时,它确实把它视为一个子目录,并列出了包含中的文件。
如果它有帮助,这就是根.htaccess中的所有内容
RewriteEngine On
# Some hosts may require you to use the `RewriteBase` directive.
# If you need to use the `RewriteBase` directive, it should be the
# absolute physical path to the directory that contains this htaccess file.
#
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
另外应该注意的是,客户端不使用Slim,只需使用vanilla php
编辑:确定导致问题的纤薄路线
我在所有命名路由的底部基本上都有一个'catch all'路由,所以我不必为我创建的每个标准页面模板创建一个新路由。但是,如果url是一个目录,我虽然苗条仍会取消这条路线?
$app->get('/:page', function ($page) use ($app) {
$route = $app->router->getNamedRoute('standardRoute');
$route->setParams(['page'=> $page,'subpage'=> ""]);
$result = $route->dispatch();
});
$app->get('/:page/:subpage', function ($page,$subpage) use ($app) {
$arr = $app->engine->returnData();
$p = new JTProject();
$projects = $p->projectList();
$arr['projectlist'] = $projects;
JtUtils::renderTemplate($app,$page."/".$subpage,$arr);
})->name('standardRoute');