Nginx阻止对php文件的访问
我创建了一个简单的php文件来显示从MYSQL数据库获取的信息。紧接着,我在Nginx中使用了一个重写规则,以使链接seo友好,并屏蔽获取它的.php文件 例:Nginx阻止对php文件的访问,php,nginx,url-rewriting,fastcgi,Php,Nginx,Url Rewriting,Fastcgi,我创建了一个简单的php文件来显示从MYSQL数据库获取的信息。紧接着,我在Nginx中使用了一个重写规则,以使链接seo友好,并屏蔽获取它的.php文件 例:http://localhost/myfile.php?seo=how-要安装linux 重写规则后,我可以访问它,如下所示: http://localhost/how-to-install-linux 我的重写规则是: location / { rewrite ^/([a-zA-Z0-9_$\-]+)$ /myfile.php?seo
http://localhost/myfile.php?seo=how-要安装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。
有没有一种方法可以让它在使用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 您可以使用
内部
指令来防止直接访问某个位置。有关详细信息,请参阅
例如:
location = /myfile.php {
internal;
include fcgi.conf;
fastcgi_pass unix:/var/run/ajenti-v-php7.0-fcgi-drnou-php7.0-fcgi-0.sock;
}
它起作用了!谢谢你,伙计。我在谷歌上搜索过一些基本的搜索词,但没有找到任何有用的。再次感谢!
location = /myfile.php {
internal;
include fcgi.conf;
fastcgi_pass unix:/var/run/ajenti-v-php7.0-fcgi-drnou-php7.0-fcgi-0.sock;
}