2017-06-13 12 views
0

私の.htaccessファイルとしてのindex.phpへのアクセスを拒否されていますhtaccessファイルは、ディレクトリインデックス

DirectoryIndex index.php 

order allow,deny 
<FilesMatch "^(index|testfile)\.php$"> 
Allow From All 
</FilesMatch> 

これは典型的にはオープンindex.phpのだろう、サイトのルートへのアクセスを拒否します。サイトをロードする唯一の方法は、mysite.comの代わりにmysite.com/index.phpに行くことです。orderを削除すると、期待通りに機能しますが、そのディレクトリにあるすべてのファイルにアクセスできるようになります。

index.phpを除くすべてのファイルを拒否するようにhtaccessを設定するにはどうすればいいですか?mysite.com/index.phpの代わりにmysite.comへのナビゲーションも許可しますか?

+0

downvotersは、理由を説明することはできますか? –

答えて

1

あなたはこのようにそれを行うことができます。

DirectoryIndex index.php 
order Deny,Allow 

# deny everything except landing page 
<FilesMatch "."> 
Deny From All 
</FilesMatch> 

# allow index.php and testfile.php 
<FilesMatch "^(index|testfile)\.php$"> 
Allow From All 
</FilesMatch> 

代替ソリューションmod_rewriteを使用して:

DirectoryIndex index.php 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !\.(?:css|js|png|jpe?g|gif|ico|tiff)$ [NC] 
RewriteRule ^(?!(index|testfile)\.php). - [F,NC] 
+0

助けてくれてありがとう、私は末尾に '/'をURLに付け加えない限り、まだアクセスを拒否しているように見えます。 –

+0

Apacheでテストしたところ、 'http:// localhost'、' http:// localhost/index.php'、 'http:// localhost/testfile.php' – anubhava

+0

で代替ソリューションを試すことができます – anubhava