我使用 Grav 创建了一个新网站。旧站点的页面必须使用以 .php 结尾的 url 访问。 url /somefolder/somepage.php 只是给我“找不到文件”。它不会引导我进入内置的 Grav 错误页面。
我禁用了 Grav 的错误插件,因此它不会妨碍您。
如何将 /somefolder/somepage.php 重写为 /somefolder/somepage
另外,如何将任何 404 错误重定向到主页?
错误由以下方式处理:
/var/www/grav-admin/system/src/Grav/Common/Processors/PagesProcessor.php
if (!$page->routable()) {
// If no page found, fire event
$event = $this->container->fireEvent('onPageNotFound');
if (isset($event->page)) {
unset ($this->container['page']);
$this->container['page'] = $event->page;
} else {
throw new \RuntimeException('Page Not Found', 404);
}
}
如何替换“throw new \RuntimeException('Page Not Found', 404);”行 有重定向到主页的指令?
上述错误仅适用于不以 .php 结尾的 url 以 .php 结尾的url不
被 Grav 处理,所以我猜是 Web 服务器在处理这些错误。网络服务器是 nginx/1.11.9。
我尝试将以下几行添加到我的 nginx.conf 中,但这并没有解决问题。
error_page 404 = @foobar;
location @foobar {
rewrite .* / permanent;
}