1

への直接アクセスを無効にしたいが/index.php、フロント コントローラーとして使用したい ( を使用$_SERVER['PATH_INFO'])。意味:

URI                    EXPECTED ACTION
-----------------------------------------------
/index.php             raise 404
/                      use   /index.php/
/foo/bar               use   /index.php/foo/bar
/index.php/foo/bar     raise 404

その際、次の.htaccessファイルを使用します。

RewriteEngine On
RewriteRule ^ index.php [QSA,L]

index.php(API を作成する)以外のファイルは必要ありません。

ご協力ありがとうございました!

4

2 に答える 2

0

これがうまくいくかどうかはわかりませんが、試してみる価値はありますか?/index.phpを入力した人のために書き換えルールを作成し、サーバーに存在しないhtmlファイル(foo.htmlなど)に書き換えることができます。これにより、ファイルが見つからない場合に404​​エラーが発生しますが、ファイル名が指定されていない場合でも、サーバーはデフォルトの動作を使用してindex.phpをロードできます。

于 2013-02-04T23:34:12.560 に答える
0

ファイルへのアクセスを無効にすると、apache はそれを制限し、ファイルにアクセス権がない場合は無効になります。mod_rewrite を使用して URL を偽造し、URL に index.php を表示することができますが、別のファイルで別のことを行う必要があります。

index.php -- not access
index.php/foo/bar -- no access
test.php -- have access
test.php/foo/bar -- you can fake it in url throw mod_rewrite and result will looks like as index.php/foo/bar

私は助けてくれることを願っています...

于 2013-02-04T18:53:58.273 に答える