2017-01-28 7 views
0

go.phpを除くすべてのファイルへの直接アクセスを拒否したいとします。getパラメータを持つPRETTY URL以外のすべてのファイルへの直接アクセスを拒否する

私はthisの質問を読んだことがありますが、私の場合はGETパラメータも送っているので動作しません。

つまり、www.domain.com/go.php?code=xyz123に行くときを除いて、すべてのファイルを拒否する必要があります。

マイコード:私はそれを修正するにはどうすればよい

Order Allow,Deny 
deny from all 
allow from [my IP here] 

<FilesMatch "go.php"> 
    Allow from all 
</FilesMatch> 

ありがとうございます!


EDIT 1

私はにコードを更新:URLがdomain.com/go.php?code=123であれば今では許可しない

<Files go.php> 
Allow from all 
</Files> 

。 URLがdomain.com/go/123ある場合

RewriteRule ^go/([a-z0-9]+)$    /go.php?code=$1 
RewriteRule ^go/([a-z0-9]+)/$    /go.php?code=$1 

ので、ファイルのコード上では動作しません:事は、私は、この書き換え条件ではかなりのURLを使用することです。これを修正するには?

+0

あなたはGETパラメータを探している 'RewriteCond'とそれ以外のものをエラー文書にリダイレクトする' RewriteRule'に基づいて実装することができます_しかし、これは奇妙なコンセプトで、GETパラメータを使ったアクセスコントロール... – arkascha

+0

私は人々が 'goにアクセスすることは気にしません。php'はPHPファイルであるため、 'code' GETパラメータはありません。あなたは404ページにリダイレクトされます。ですから、 'go.php'だけがGETパラメータで動作しないので、基本的に' FilesMatch'に書き込むコードが必要です。 –

+0

@MagnusEriksson私の質問編集を参照してください:) –

答えて

1

これはただ一つの特定のファイルであるので、あなたはFilesMatchは必要ありませんが、/go.php?code=123に代わり

/go/123から書き換え
<Files go.php> 
... 
</Files> 

Filesを使用することができます古典的です。あなたは、クエリ文字列の一部をキャプチャして、「//123を行く」ので、私は<Files go><FilesMatch go>が動作するように期待していなかった

RewriteRule ^go/(.+)$ /go.php?code=$1 [L] 

代わりにそれを使用する厳密ではファイルではありませんセンス。自分の無知追加

<Files go> 
Allow from all 
</Files> 

作品にもかかわらず、そう

。代替案として

、あなたはIfを使用して、要求されたURLパスに

<If "%{REQUEST_URI} =~ m,^/go/,"> 
Allow from all 
</If> 
+0

これは動作しますが、私のかなりのURL形式では動作しません。私は: 'RewriteRule^go /([a-z0-9] +)$ /go.php?code = $ 1'を持っています。 'domain.com/go.php?code = 123'に行っても動作しますが、' domain.com/go/123'では動作しません。 –

+0

これは2つの異なる独立したものです。 1. 'Files/FilesMatch'は、アクセスコントロールを特定の(複数の)ファイルに制限するためのものです。2. RewriteRuleはあるURLから別のURLへ書き換えるためのものです。 –

+0

ええ、私はそれを知っていますが、別のことを尋ねるつもりでした。あなたが私に与えたファイルコードは、 'domain.com/go.php?code = 123'へのアクセスを許可しますが、URLがかなりのURLである場合、' domain.com/go/123'にはアクセスできません。私はちょうど私の問題をよりよく説明するために編集しました。 –

0

を確認することができます解決問題:

<FilesMatch "go|go.php"> 
    Allow from all 
</FilesMatch> 

あなたのすべてをありがとう!

関連する問題