2017-01-04 10 views
0

私はYii2に基づいてWebプロジェクトを開発しました。したがって、サブディレクトリ "web"を除くすべてのファイルとディレクトリへのアクセスを禁止する必要があります。以下は IIS8でweb.configを使用しているディレクトリ以外のすべてのディレクトリへのアクセスを禁止するにはどうすればよいですか?

は、プロジェクトのディレクトリ構造体である:私は.htaccessファイルでapacheの下にこれを達成した

.htaccess 
composer.json 
config/ 
    console.php 
    web.php 
commands/ 
controllers/ 
models/ 
runtime/ 
vendor/ 
views/ 
web/ 
    .htaccess 
    assets/   
    index.php 

、それは非常に非常に簡単です^ _^

の.htaccess

Order Allow,Deny 
Deny from all 

ウェブ/ .htaccess

Order Allow,Deny 
Allow from All 

しかし、IIS8でこのプロジェクトを展開する必要があるため、IIS管理を使用して.htaccessをweb.configに変換しようとしましたが、変換結果が空です。 どうすればいいですか?ありがとう

答えて

0

IISは、要求フィルタリングモジュールを使用して、アプリケーションのコンポーネントであるファイルへのブラウザアクセスを制限します。インストールスクリプトは、このフィルタによってブロックされているので、あなたは、インストールのためにコメントアウトこのセクションを残すことができます

<security> 
     <requestFiltering> 
      <denyUrlSequences> 
       <add sequence="engine" /> 
       <add sequence="inc" /> 
       <add sequence="info" /> 
       <add sequence="install" /> 
       <add sequence="module" /> 
       <add sequence="profile" /> 
       <add sequence="po" /> 
       <add sequence="sh" /> 
       <add sequence="theme" /> 
       <add sequence="tpl(\.php" /> 
       <add sequence="Root" /> 
       <add sequence="Tag" /> 
       <add sequence="Template" /> 
       <add sequence="Repository" /> 
       <add sequence="code-style" /> 
      </denyUrlSequences> 
      <fileExtensions> 
       <add fileExtension=".sql" allowed="false" /> 
       <add fileExtension=".pl" allowed="false" /> 
      </fileExtensions> 
     </requestFiltering> 
    </security> 

注:Web.configファイルのサンプルアプリケーションの場合、セクションは次のようになります。

要求フィルタリングを使用する代わりに、URLリライタモジュールを使用して、一致するファイルタイプのいずれかに403エラーを返すことができます。 URL Rewriterモジュールの利点は、マッチに正規表現を使用することです。

+0

私の目的は、ディレクトリのインデックスを制限するのではなく、ディレクトリアクセス(すべてのサブディレクトリとサブディレクトリ内のファイルを含む)を禁止することです。 – hahamy

+0

フォルダやサブフォルダへのアクセスを拒否します。誰かがアクセスしようとすると、403例外がスローされます。 – Yupik

+0

ファイルへのアクセスを禁止することはできません。たとえば、www.example.com/web/config.php – hahamy

関連する問題