Я новичок в Grav и застрял на проблеме, для которой я не мог найти никакого решения в другом месте.Надеюсь, некоторые из вас смогут помочь.В данный момент я пытаюсь настроить Grav таким образом, чтобы у меня было несколько подпапок, которые, в свою очередь, содержат больше папок с моими дочерними сайтами.Моя структура папок выглядит следующим образом:
- пользователь
- сайты
- v1
- сайты
- subsitefolder1
- pages (папка)
- папка с действительными страницами внутри
- subsitefolder2
- v2
- ...
Я использовал официальное руководство Grav для установки с несколькими сайтами и создал файл setup.php (для подкаталога) в корневом каталоге Grav.Но, к сожалению, это работало только для сайтов, которые были на уровне моей папки v1.Сайты, которые расположены в папках на более глубоком уровне, как требует моя структура выше, не работают.
Поэтому я попытался настроить файл setup.php, чтобы он правильно генерировал новый путь.Я подумал, что соответствовал пути к структуре папок, но сайты отображаются только до уровня subsitefolder1
.Так что v1/subsitefolder1
работает, так как показывает целевую страницу, но даже фактический URL для целевой страницы v1/subsitefolder1/landingpage
больше не работает.
Я попытался изменить переменные пути, чтобы включить вновь добавленные уровни папок, которые выглядели так, как будто они должны работать, поскольку сгенерированный URL-адрес соответствовал структуре папок так же, как старый setup.php (плюс дополнительная папкауровень).Но это не сработало.Вот как выглядит мой настроенный файл setup.php на данный момент:
<?php
/**
* Multisite setup for sub-directories or path based
* URLs for subsites.
*
* DO NOT EDIT UNLESS YOU KNOW WHAT YOU ARE DOING!
*/
use Grav\Common\Filesystem\Folder;
// Get relative path from Grav root.
$path = isset($_SERVER['PATH_INFO'])
? $_SERVER['PATH_INFO']
: Folder::getRelativePath($_SERVER['REQUEST_URI'], ROOT_DIR);
// Extract name of subsite from path
$name = Folder::shift($path);
$prefix = "/{$name}";
//add another layer for deeper subsites
$subsites= $name . '/' . $path . '/';
//concatenates $name sites and $path"
$urlwithsite=$name . '/' . 'sites/' . $path . '/';
// overwrite folder to contain whole path after user/
$folder = "sites/{$urlwithsite}";
if (!$name || !is_dir(ROOT_DIR . "user/{$folder}")) {
return [];
}
// Prefix all pages with the name of the subsite
$container['pages']->base($subsites);
return [
'environment' => $name,
'streams' => [
'schemes' => [
'user' => [
'type' => 'ReadOnlyStream',
'prefixes' => [
'' => ["user/{$folder}"],
]
]
]
]
];
Сгенерированный URL выглядит так, как будто он должен быть правильным, так как он соответствует структуре папки, но он не работает должным образом.
Заранее спасибо.Любой совет приветствуется.