-1

今朝、http://www.mydomain.com/application/configs/application.iniZendプロジェクトのファイルをデフォルトで表示できることを発見したとき、私は恐れていました!

.phtmlさらに厄介なことに、次のような最終URLを指すときに、ページのphpソースコードを表示することができます。http://www.mydomain.com/application/views/scripts/index/index.phtml

したがって、私は本当に自分のWebサイトを保護する必要があります。フォルダにある.iniメインの正しい構文を使用して、ファイルとソースコードが表示されないようにすることができると確信しています。.htaccesspublic

私たちを手伝ってくれますか?

この種の構文について考えましたが、.htaccessファイルをすべてのフォルダーにコピーすることはしません。ルールを1つのファイルにのみ書き込みたいのですが。

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

すべてが1つのディレクトリでは低すぎるようです。

Webルートはあなたの「ProjectDir」のようです。

このディレクトリには、パブリックフォルダのコンテンツのみが必要です。

アプリケーションとライブラリのディレクトリは1つ上のレベルである必要があります。あなたはあなたのホスティングインターフェースでこれを行うことができるはずです。

vhostを変更できない場合、構造は次のようになります。

|_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

...など

于 2012-09-14T10:43:07.683 に答える