2017-11-19 10 views
1

MYSQLデータベースから取得した情報を表示するための簡単なPHPファイルを作成しました。その直後、私はNginxのリライトルールを使用してリンクを親しみやすくし、それをフェッチする.phpファイルをマスクします。NginxはPHPファイルへのアクセスをブロックします

例:http://localhost/myfile.php?seo=how-to-install-linux 書き換えルールの後、私はそれが好きでアクセスすることができます。

http://localhost/how-to-install-linux 

私の書き換えルール

は以下のとおりです。

location/{ 
rewrite ^/([a-zA-Z0-9_$\-]+)$ /myfile.php?seo=$1 last; 
rewrite ^/(.*)/$ /$1 permanent; <- just to block trailing slash 
} 

私の問題は、私はまたへの直接アクセスをブロックするということです私のPHPファイルと私は唯一のSEOフレンドリーなURLを仕事したい。

location = /myfile.php { 
deny all; 
} 

このルールは、私のphpファイルへの完全なアクセスをブロックします。これには、友好的なURLが含まれます。 NGINXを使用してSEOフレンドリーバージョンで動作させる方法はありますか?私の他の設定は :

location ~ \.php$ { 
try_files $uri =404; 
include fcgi.conf; 
fastcgi_pass unix:/var/run/ajenti-v-php7.0-fcgi-drnou-php7.0-fcgi-0.sock; 

} 

私はnginxのを使用し、何のApacheがインストールされていません。

答えて

2

internalディレクティブを使用すると、場所に直接アクセスするのを防ぐことができます。詳細は、this documentを参照してください。例えば

location = /myfile.php { 
    internal; 
    include fcgi.conf; 
    fastcgi_pass unix:/var/run/ajenti-v-php7.0-fcgi-drnou-php7.0-fcgi-0.sock; 
} 
+0

それは働きます!ありがとう。私は基本的な検索条件でGoogleを検索しましたが、役に立たないものは何も見つかりませんでした。もう一度、ありがとう! – Newb90

関連する問題