簡體   English   中英

Nginx阻止對php文件的訪問

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM