2016-08-14 9 views
0

私は保留中の+のものが特定のallow IPを除いて404ページにリダイレクトされるようなルールを設定したいと思います。NginxにIP制限付きの条件付きパターンマッチングルールを追加するには?

例えば、 IPが111.111.111.111の場合

http://domain.com/12345+は、その他の条件はPHPブロックの前に優先すべき

このルール

を発見していない404を返します

(PHPブロックを経由して)処理されます。

答えて

0
location ~ "^/([0-9a-zA-Z]{5})\+$" { 
    allow 111.111.111.111; 
    deny all; 
    try_files $uri $uri/ /index.php.php$is_args$args; 

    location ~ \.php$ { 
     try_files $uri =404; 
     fastcgi_split_path_info ^(.+\.php)(/.+)$; 
     fastcgi_pass unix:/var/run/php-fpm-www.sock; 
     fastcgi_index index.php; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;    
     include fastcgi_params; 
    } 
} 

上記の解決策は、許可されていないIPから来た場合404が見つかりませんでしたが、禁止されている403が表示されています。

内部404ページを表示する方法や、404が発生したときに外部URLにリダイレクトする方法を誰かに教えていただければ幸いです。