IIS:隐藏的段和自定义错误冲突

时间:2016-06-26 23:40:33

标签: php iis web-config custom-error-pages

我需要保护/app目录及其文件不被探测。我尝试在<hiddenSegment>文件中使用web.config并且它运行良好...除了当我添加IIS自定义错误页面时,它不起作用。

申请结构

.
├── app
│   ├── template
│   │   ├── footer.php
│   │   ├── header.php
│   │   └── index.php
│   ├── error-handler.php
│   ├── footer.php
│   └── header.php
├── template
│   ├── css
│   └── js
└── web.config

需要隐藏整个/app目录;其内容必须安全无法探测。

web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.webServer>
        <httpErrors errorMode="Custom">
            <remove statusCode="404" />
            <error statusCode="404" prefixLanguageFilePath="" path="/app/error-handler.php" responseMode="ExecuteURL" />
            <remove statusCode="403" />
            <error statusCode="403" prefixLanguageFilePath="" path="/app/error-handler.php" responseMode="ExecuteURL" />
        </httpErrors>
        <security>
            <requestFiltering>
                <hiddenSegments>
                    <add segment="app" />
                </hiddenSegments>
            </requestFiltering>
        </security>
    </system.webServer>
</configuration>

我一直在努力尝试同时隐藏/app目录并使IIS在/app/error-handler.php中提供错误处理程序。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

如何在app文件夹(myFolder)下创建另一个文件夹,并将除error_handler.php之外的所有内容移动到该新文件夹(myFolder)中,并相应地调整Hiddensegments标记。这可能需要对您的代码进行一些调整。

或者只是将error-handler.php移动到一级并相应地调整CustomErrors标记。不确定它是否会破坏任何东西。