问题: 站点的root目录为 /data/web/ ,现在想在www.111.com 下放一个站点,www.111.com/abc/ 但不能直接在/data/web/下创建abc目录,要放在 /data1/abc/下。 解决办法: 使用nginx的alias功能实现虚拟目录 在配置文件中加入 location ~ /abc/(.*)$ { alias /data1/abc/$1; } 当然,alias后面跟的目录可以随意,只要是你放程序的目录即可。也就是说,alias后面定义的/data1/abc/ 也可以使/data1/123/ 此时,访问图片,网页,css以及js都没有问题,但是访问php就会报404. 怎么办? 继续加如下配置,但注意,要加在上面那段location配置的前面,否则不生效。 location ~ /abc/.+.php$ { root /data1/; rewrite /abc/(.*.php) /$1 break; include fastcgi_params; fastcgi_pass unix:/tmp/php-fcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /data1/abc/$fastcgi_script_name; }