多くのフレームワークと同じことを達成しようとしています。要求が.php(つまりindex.php)で処理され、/application/public
というフォルダにすべての要素それらが存在する場合に表示する必要があります。例えば:それが存在するファイルが他の場所に存在する場合にRewriteRuleを実行する方法
folder /application/public
total 28K
92897619 drwxr-xr-x 5 1001 1001 4.0K Jul 29 00:07 .
92897616 drwxr-xr-x 7 1001 1001 4.0K Jul 28 23:31 ..
92897754 -rw-r--r-- 1 1001 1001 15 Jul 29 00:07 .htaccess
92897733 drwxr-xr-x 2 1001 1001 4.0K Jul 28 23:31 images
92897620 -rw-r--r-- 1 1001 1001 696 Jul 28 23:58 index.php
92897625 drwxr-xr-x 2 1001 1001 4.0K Jul 28 23:31 javascript
92897734 drwxr-xr-x 2 1001 1001 4.0K Jul 28 23:31 stylesheets
folder /:
total 24K
92831996 drwxr-xr-x 4 1001 1001 4.0K Jul 29 02:44 .
91980897 drwxr-xr-x 5 0 0 4.0K Jul 6 00:30 ..
92831975 -rw-r--r-- 1 1001 1001 360 Jul 29 02:44 .htaccess
92897616 drwxr-xr-x 7 1001 1001 4.0K Jul 28 23:31 application
92832733 -rw-r--r-- 1 1001 1001 696 Jul 29 00:02 index.php
92897739 drwxr-xr-x 6 1001 1001 4.0K Jul 28 23:31 system
example.com/images/a.jpg
要求がある場合、/application/public/images/a.jpg
が示されるべきです。そうでない場合、index.phpはクエリ文字列として?uri=images/a.jpg
を取得します。これにより
は心の中で、私は(/に置かれた)次の.htaccessを書いた:
Options +FollowSymLinks +Indexes
RewriteEngine on
RewriteBase/
RewriteCond %{DOCUMENT_ROOT}/application/public%{REQUEST_URI} -f
RewriteCond %{DOCUMENT_ROOT}/application/public%{REQUEST_URI} -d
RewriteRule ^(.*)?$ application/public/$1 [L]
RewriteRule ^(.+)?$ index.php?uri=$1 [PT,QSA,L]
それでも、/application/public
で既存のものを要求することはindex.php
に要求をリダイレクトします(例えば、example.com/images/a.jpg
はexample.com/index.php?uri=images/a.jpg
なってしまいます)。
Apacheはのみ(example.com/javascript/index.php
を要求する場合)次のことを示して記録します、あなたが想像できるように、これは/ home/jbayardo/WWW /テスト/ javascriptの
:
ファイルが存在しないと空に私を残す。
これは完全に働いた、どうもありがとうございました。 –