需求:通过 example.com 访问 /var/data/www,但通过 example.com/pa 访问的却是 /var/data/phpmyadmin,即保护phpmyadmin不暴露在www目录下。一、方法一:(不推荐)简介:这是网上普遍采用的 rewrite 方式。
缺陷:简单的php程序还能应付,复杂一点的程序就no input file specified
01.server {
02.listen 80;
03.server_name example.com;
04.
05.root /var/data/www;
06.index index.html index.php;
07.
08.location /pa {
09.alias /var/data/phpmyadmin;
10.index index.html index.php;
11.}
12.
13.location ~ /pa/.+\.php$ {
14.rewrite /pa/(.+\.php) /$1 break;
15.fastcgi_pass 127.0.0.1:9000;
16.fastcgi_index index.php;
17.fastcgi_param script_filename /var/data/phpmyadmin/$fastcgi_script_name;
18.include fastcgi_params;
19.}
20.
21.location ~ .+\.php.*$ {
22.fastcgi_pass 127.0.0.1:9000;
23.fastcgi_index index.php;
24.fastcgi_param script_filename $document_root/$fastcgi_script_name;
25.fastcgi_param script_filename $request_filename;
26.include fastcgi_params;
27.}
28.}
二、方法二:(推荐)简介:完美实现,无副作用。
特点:使用了一个叫$valid_fastcgi_script_name的变量
查看代码打印代码帮助
01.server {
02.listen 80;
03.server_name example.com;
04.
05.root /var/data/www;
06.index index.html index.php;
07.
08.location /pa {
09.alias /var/data/phpmyadmin;
10.index index.html index.php;
11.}
12.
13.location ~ /pa/.+\.php.*$ {
14.if ($fastcgi_script_name ~ /pa/(.+\.php.*)$) {
15.set $valid_fastcgi_script_name $1;
16.}
17.fastcgi_pass 127.0.0.1:9000;
18.fastcgi_index index.php;
19.fastcgi_param script_filename /var/data/phpmyadmin/$valid_fastcgi_script_name;
20.include fastcgi_params;
21.}
22.
23.location ~ .+\.php.*$ {
24.fastcgi_pass 127.0.0.1:9000;
25.fastcgi_index index.php;
26.fastcgi_param script_filename $document_root/$fastcgi_script_name;
27.fastcgi_param script_filename $request_filename;
28.include fastcgi_params;
29.}
30.}
二、方法三:简介:在 zhigang.net 上看到的创意方法,即一个站加两个server字段,然后通过反代的方式实现。
特定:方法有创意,稍微麻烦点。 以上就介绍了nginx目录别名alias支持php的配置,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。