问题描述
最近在看nginx,但是不太清楚alias的用途具体有什么用?root和rewrite都可以实现它,为什么还要使用alias呢?
root /data/mydomain/main/web/;location ~* ^/app(|/)$ {#alias /data/mydomain/main/public/app/;rewrite ^/app(|/)$ /public/app/ last;expires 30s;}
上面的配置中,rewrite生效了达到我的预期。但是alias这个就出现了问题。
问题解答
回答1:这是你自己的理解问题,首先rewrite和root以及alias根本不沾边。rewrite是针对http请求的,他里面的路径是网址里面的地址,是地址间的转换。而root和alias是系统文件路径的设置。区中root用来设置根目录,而alias用来重置当前文件的目录。
location /img/ { alias /var/www/image/;}#若按照上述配置的话,则访问/img/目录里面的文件时,ningx会自动去/var/www/image/目录找文件location /img/ { root /var/www/image;}#若按照这种配置的话,则访问/img/目录下的文件时,nginx会去/var/www/image/img/目录下找文件。]