今天早上,当我发现可以默认显示我的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