-2

我们注册了所有应该从我们的 WEB 服务器提供的文件(WEB 页面)。我可以将 Apache 配置为执行特定的脚本/程序来验证请求的页面是否已注册?如果请求的页面未注册,将显示“找不到页面”。

4

1 回答 1

0

我确实读过你的问题几次,但我仍然没有 100% 理解你的要求。请更新更多细节。

如果找不到页面,Apache 将发送 404,所以我假设您允许服务器上的任意文件(in-dev 或版本文件等),但正在尝试找出如何检查文件或针对允许文件列表的请求加载文件之前。

这可以通过 PHP 和 mod_rewrite 来完成,

因此,使用 PHP 和一个粗略的示例,您可以执行以下操作:

<?php
$path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); 

if(check_register($path)){
    //load page into buffer
    ob_start();
    require($path);

    echo ob_get_clean();
}else{
    exit(header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found'));
}
?>

check_register($path)函数将是检查文件是否被允许并返回truefalse的某种机制,您需要使用 mod_rewrite 将所有内容传递给此路由文件(index.php),以便请求不会加载原始文件,如果它是那里。

.htaccess

RewriteEngine On
Options -Indexes
RewriteBase /
RewriteCond %{REQUEST_URI} !^/index.php
RewriteRule .* index.php [L]
于 2013-06-27T15:36:25.487 回答