减少服务器上文件数量的方法- 404工作,但返回状态404


ways to lessen number of files on server - 404 works but returns status 404

我们的站点在一个名为/var/www/album/*.php的目录中包含了数百个专辑文件每个专辑文件都以专辑的编号命名:245.php、943.php、103.php等。这些专辑文件仅仅由一个简单的PHP指令组成,该指令包含album. PHP脚本,该脚本也位于/var/www/album/album. PHP中(显示专辑的核心部分)。

我想以某种方式消除甚至在目录中有这些专辑文件的需要,所以我的想法是配置nginx来提供一个自定义的404页面,如果请求的页面没有找到。在404页(custom_404.php)中,我有一些php代码,它剥离_SERVER['document_uri'],检查数据库以查看它是否是专辑,如果是,custom_404.php包含album.php。如果请求的文件确实是404,那么custom_404.php显示Page Not Found…

这工作良好,除了状态码:404仍然被返回,但我不禁认为他们必须是一个更好的方式来处理这种情况?我不想去相册。php?相册= 245路线!这是可能的与nginx和php?

谢谢!

首先告诉nginx在请求的文件没有找到时服务index.php:

try_files $uri /index.php;

然后,在index.php中,从URI中提取所需的信息:

$uri = $_SERVER['REQUEST_URI'];
// logic to extract the album etc

例如,在浏览器中点击http://yoursite.com/album/123在index。php中得到:

$uri = '/album/123';

(然后你可以删除所有的n.p p文件)