如何在GRAV中使用php扩展重定向页面
我用Grav创建了一个新网站。 旧站点的页面必须使用URL ending.php进行访问 url/somefolder/somepage.php只是给了我一个未找到的文件。 它不会引导我进入内置的Grav error页面 我禁用了Grav的错误插件,所以它不会碍事 如何将/somefolder/somepage.php重写为/somefolder/somepage 另外,如何将404错误重定向到主页? 错误由以下人员处理: /var/www/grav admin/system/src/grav/Common/Processors/PagesProcessor.php 如何替换行throw new\RuntimeException'Page Not Found',404;有重定向到主页的指令吗 以上错误仅在URL不以.php结尾时被捕获 以.php结尾的URL不是由Grav处理的,所以我猜是web服务器处理这些错误。web服务器是nginx/1.11.9。 我尝试将下面的行添加到我的nginx.conf中,但这并没有解决问题如何在GRAV中使用php扩展重定向页面,php,redirect,grav,Php,Redirect,Grav,我用Grav创建了一个新网站。 旧站点的页面必须使用URL ending.php进行访问 url/somefolder/somepage.php只是给了我一个未找到的文件。 它不会引导我进入内置的Grav error页面 我禁用了Grav的错误插件,所以它不会碍事 如何将/somefolder/somepage.php重写为/somefolder/somepage 另外,如何将404错误重定向到主页? 错误由以下人员处理: /var/www/grav admin/system/src/grav/
error_page 404 = @foobar;
location @foobar {
rewrite .* / permanent;
}
我会在服务器端处理您的两个问题 如何将/somefolder/somepage.php重写为/somefolder/somepage 我会这样做:
location ~ \.php$ {
if (!-f $request_filename) {
rewrite ^(.*)\.php$ $1.html permanent;
}
}
这意味着:对于每个请求的php文件,删除php并用.html替换.php
另外,如何将404错误重定向到主页
出现此问题的原因可能有两个:
http头问题:您没有在重定向中更改http头,所以您仍然提供404。在检查位置是否存在之前,服务器将搜索http代码状态。在这里,它仍然是404。
您可以在上使用fastcgi_intercept_错误;
对于这个问题,我将使用以下代码:
server {
...
index index.html index.php
error_page 404 = @hpredirect;
...
location @hpredirect {
return 301 /;
}
}
希望有帮助 我没有检查这个答案的正确性,因为Grave在管理页面中已经有了这样的设置。Grav论坛上有人向我指出了这一点。不过还是谢谢你的回答。
server {
...
index index.html index.php
error_page 404 = @hpredirect;
...
location @hpredirect {
return 301 /;
}
}