Zend项目:不允许显示源代码


Zend project : Do not permit the source code displaying

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

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

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

你能帮我吗?

我考虑过这种语法,但我不会将.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

所有目录似乎都太低了。

web根似乎是您的"ProjectDir"。

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

应用程序和库目录需要向上一级。你应该能够用你的主机界面做到这一点。

如果你不能修改vhost:,你的结构应该是这样的

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

应用程序目录不应该在公共目录中(它应该在web根目录之外)。

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

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

etc