经典的前情提要:
没有面板。手写nginx配置文件。前些日子整了个phpMyAdmin,但是放在网页的根路径下不太安全,要是被扫出来了绝对少不了爆破。于是就想把他放到一个子目录下,但是子目录名称又不想和物理路径的目录相同。那就必然只能整虚拟目录。
nginx的配置资料真是难找。。
Nginx实现虚拟目录无非就是用alias和rewrite。Nginx官方文档对虚拟目录(alias)的描述很少。网上的资料比较少,要么无用要么语法不够精简。但最终还是找到了解决方案。
配置文件(仅location块):
location /x1 {
alias /var/www/phpMyAdmin;#物理路径。
try_files $uri $uri/ @x2;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_param SCRIPT_FILENAME $request_filename;
# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;#php版本有可能不同,需要调整。
# With php-cgi (or other tcp sockets):
#fastcgi_pass 127.0.0.1:9000;#两种连接方式均可,视实际情况。
}
}
location @x2 {
rewrite /x2/(.*)$ /x1/index.php?/$1 last;
}
注:中间的x1为虚拟目录名,x2随意(变量名)。alias后跟物理路径。php-fpm连接需要根据php版本修改一下。
声明:
本文采用
BY-NC-SA
协议进行授权,如无注明均为原创,转载请注明转自
1Inf0
本文地址: Nginx配置-虚拟目录(动态页面)
本文地址: Nginx配置-虚拟目录(动态页面)