当我写入位置,它的工作原理,当我使用相同的位置作为重写规则,它不!!! 我不明白这个逻辑。 有人可以解释吗?
location /v3/ { alias /var/www/api/v3/html/; echo $document_uri; echo $document_root; echo $request_filename; echo $request_uri; echo $fastcgi_script_name; }
当我做到以上,我得到
/v3/info.php /var/www/api/v3/html/ /var/www/api/v3/html/info.php /v3/info.php /v3/info.php
但是,如果我现在改变位置使用重写:
location ~ ^/(v\d+)/ { alias /var/www/api/$1/html/; echo $document_uri; echo $document_root; echo $request_filename; echo $request_uri; echo $fastcgi_script_name; }
所有的path都搞砸了:
/v3/info.php /var/www/api/v3/html/ /var/www/api/v3/html/ /v3/info.php /v3/info.php
怎么来的??
您需要匹配整个url才能执行此操作。
例如:
location ~ ^/(v\d+)/(.*) { alias /var/www/api/$1/html/$2;