[英]Nginx block access to php files
我創建了一個簡單的php文件來顯示從我的MYSQL數據庫獲取的信息。 之后,我在Nginx中使用了重寫規則,使鏈接seo友好並掩蓋了獲取它的.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文件的完全訪問,包括通過seo friendlyy 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。
您可以使用internal
指令來防止直接訪問位置。 有關詳細信息,請參見此文檔 。
例如:
location = /myfile.php {
internal;
include fcgi.conf;
fastcgi_pass unix:/var/run/ajenti-v-php7.0-fcgi-drnou-php7.0-fcgi-0.sock;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.