-1

今天早上,当我发现可以默认显示http://www.mydomain.com/application/configs/application.ini我的 Zend 项目的文件时,我很害怕!

.phtml更令人不安的是,当指向最终 URL 时,可能会显示页面的 php 源代码,例如http://www.mydomain.com/application/views/scripts/index/index.phtml

因此,我真的需要保护我的网站。我确信可以使用位于文件夹.ini中的 main 的正确语法来阻止文件和源代码显示。.htaccesspublic

你可以帮帮我吗?

我考虑过这种语法,但我不会将.htaccess文件复制到我的所有文件夹中。我只想将规则写入一个文件。

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost.*$ [NC] 
RewriteRule .*\.(phtml|php)$ - [F]

编辑 我的目录结构是:

ProjectDir
 |_application
 | |_configs
 | |_controllers
 | |...
 |
 |_public
 | |_index.php
 | |_css
 | |_js
 | |_.htaccess
 |
 |_library
   |_Zend
4

2 回答 2

3

一切似乎都是一个目录太低了。

Web 根目录似乎是您的“ProjectDir”。

在此目录中,您只想拥有公用文件夹的内容。

应用程序和库目录需要上一级。您应该能够使用您的托管界面来执行此操作。

如果您无法修改虚拟主机,您的结构应如下所示:

|_application
|
|_library
|   |_Zend
|
|_ProjectDir
    |_index.php
    |_css
    |_js
    |_img
    |_.htaccess
于 2012-09-14T11:43:21.643 回答
1

应用程序目录不应位于公共目录中(它应位于您的 Web 根目录之外)。

Zend 项目的普通目录树应该是这样的(web 根目录指向 ProjectDir/public/):

ProjectDir
 |_application
 |
 |_public
 | |_index.php
 | |_css
 | |_js
 | |_img
 | |_.htaccess
 |
 |_library
   |_Zend

... ETC

于 2012-09-14T10:43:07.683 回答