【nginx】htmlをphpとして動かす、直リンク禁止などの設定【kusanagi OS】


 

configファイル場所

/etc/nginx/conf.d/ssl.conf(またはhttp.conf)

htmlファイルをphpで動かす

location ~ [^/]\.php(/|$) {

↓

location ~ [^/]\.(php|html|htm)(/|$) {

index.htmlをindex.phpよりも優先したい場合

index index.php index.html index.htm;

↓

index index.html index.htm index.php;

画像、css、jsなどへの直リンク禁止(google、yahoo、facebookなどは許可)

location ~* \.(jpg|jpeg|gif|png|css|js|swf|ico|pdf|svg|eot|ttf|woff)$ {
	expires 60d;
	access_log off;
}

↓

location ~* \.(jpg|jpeg|gif|png|css|js|swf|ico|pdf|svg|eot|ttf|woff)$ {
	valid_referers none blocked server_names ~\.mysite\. ~\.google\. ~\.yahoo\. ~\.bing\. ~\.facebook\. ~\.fbcdn\.;
	if ($invalid_referer){
		return 403;
	}
	expires 60d;
	access_log off;
}

※「mysite」の箇所は、自サイトの名前に置きかえる。「mysite.com」なら「mysite」とする

ちゃんとアクセス拒否できているかコマンドから確認

●拒否
curl --referer http://dummy.com https://mysite.com/img.jpg
●OK
curl --referer https://labs.manohara.info/ https://mysite.com/img.jpg

php-fpmのconf書き換え

/etc/php7-fpm.d/www.conf

; security.limit_extensions = .php .php3 .php4 .php5 .php7 .php8

↓

security.limit_extensions = .php .php3 .php4 .php5 .php7 .php8 .html .htm

confの文法チェック

nginx -t

変更した設定を再読み込み

kusanagi restart

※kusanagi OSの場合