Мне было поручено изучить возможность хранения файлов .cfm вне корневого веб-каталога в качестве дополнительной меры безопасности.(Я не говорю о CFC, но файлы, которые появятся в строке URL.)
Я подумал, что мог бы использовать свойства OnRequest () в Application.cfc, чтобы сделать это, но нетудачи.
Я пробовал это:
<cffunction name="OnRequest" access="public" returntype="void" output="true">
<cfargument name="TargetPage" type="string" required="true"/>
<cfinclude template="C:/test#arguments.TargetPage#"/>
<cfreturn/>
</cffunction>
Затем я положил test.cfm
внутрь C:\test
и попытался http://localhost/test.cfm
.Это дает мне ошибку «файл не найден».
Итак, я создал отображение ColdFusion на C:\test
, называемое «test», и изменил свой CFINCLUDE таким образом:
<cfinclude template="/test#arguments.TargetPage#"/>
К сожалению, я получилта же самая ошибка.
Итак, что я после, даже возможно?(Windows Server 2008 и IIS на случай, если это имеет значение. ColdFusion 9.)
Я знаю, что мог бы поместить CFINCLUDE в свой index.cfm и передавать URL-адреса, например http://www.example.com/?file=test.cfm
, но я бы хотелпредпочитаю не делать этого.
Ну вот что-то: если я добавлю пустой test.cfm
в мой веб-корень, то это работает.Очевидно, что на самом деле я бы предпочел не ставить пустые заглушки для каждого из моих файлов (которых для этого проекта будет сотни).