0

私は最初のCodeIgniterプロジェクトで働いています...

application/views/ほとんどのPHPをビルドし、ほぼ完成したスクリプトで遊んだ後、フォルダーへのすべてのアクセスがによって拒否されていることに気付きました.htaccess

これは、ページ固有のJavaScript、画像、または任意のWebリソースフォルダーにアクセスする場合のファイル構造にとって大きな問題です。私はすべて、views templateファイルがローカルで使用されていることを前提としているため(つまりPage_name/images/cutedog.jpg、私のコードでは、より正確に<img src="{images}cutedog.jpg">)。

私が見つけた解決策は、.htaccesを変更して、すべてのメディアファイルを除外し、アプリケーションフォルダーへのアクセスを許可することです。しかし、そうすることで、私はむしろ避けたいファイル構造を明らかにします。

Webリソースをアプリケーションフォルダの外に配置するだけで問題が解決することはわかっています。しかし、保守性の観点から、現在のようにすべてを持っている方が論理的だと思います。

だから私の質問は次のとおりです...あなたは次のようにどのような回避策を提案しますか:-私は私のウェブリソースを維持することができ application/views/issue/WEB_PAGE/Web-resource-folder ます-私のファイル構造を隠しておきます-ウェブリソースにアクセスすることができます

私の.htaccess

Deny from all
<FilesMatch "\.(css|js|jpg|pdf|avi|mpg|robots\.txt|png|pdf|favicon\.ico)$">
    Order allow,deny
    Allow from all
</FilesMatch>

私のファイル構造:

-+ /application/
 |
 |-+ /Typical CI folders/        
 |-+ /view/
   |-+ /issue/
     |-+ /1/
       |-+ /page1/
         |-+ /img/
         |-+ /js/
         |-+ /video/
       |-+ /page2/
         |-+ /img/
         |-+ /js/
         |-+ /video/
4

1 に答える 1

1

.htaccessに次のようなものを伝える複雑な書き換えルールを作成する必要があります。

if url is blah/bloh/blih/WEB_PAGE/images/cutedog.jpg 
then fetch application/views/issue/WEB_PAGE/img/cutedlog.jpg

あなたが私に尋ねるなら、あなたがより多くのリソースを作成するにつれて、それはますます面倒になるでしょう。あなたが提案したように、あなたはあなたのウェブリソースをあなたのアプリケーションフォルダの外に置くべきです。

私のCI構造は常に次のようになります。

/application
/resources
   /page1
      /img
      /js
      /video
   /page2
      /img
      /js
      /video
于 2013-01-23T17:13:40.740 に答える