如何编写从http://127.0.0.1:8888/storage/app/media/到http://127.0.0.1:8888/v/的路径?
并在其后留下任何文件名和扩展名。
我试过了:
location /v {
rewrite ^/v /storage/app/media/ last;
}
location /v {
proxy_pass http://127.0.0.1:8888/storage/app/media/;
}
location /v {
proxy_pass http://127.0.0.1:8888;
rewrite ^/v /storage/app/media/ last;
}
location ~ ^/v/(.*) {
rewrite ^/storage/app/media(.*) /v/$1 last;
}
location ~ ^/v/(.*) {
return 301 /storage/app/media/$1;
}
转到http://127.0.0.1:8888/v/file.mp4会显示未找到页面。
http://127.0.0.1:8888/storage/app/media/file.mp4仍会显示网址而不会重写。
修改
我能够用
掩盖路径rewrite ^/v/(.*)$ /storage/app/media/$1 last;
我现在如何将/ storage / app / media重定向到/ v /?
我试过了:
location ~ ^/storage/app/media(.*) {
return 301 /v/$1;
}
答案 0 :(得分:0)
似乎你想要:
/storage/app/media/xxx
的客户重定向到/v/xxx
和/v
映射到/path/to/storage/app/media
下的物理文件。您可以使用rewrite...last
将/v
映射到/storage/app/media
(正如您所发现的那样),但这意味着您的服务器必须同时接受这两个URI,这样可以实现(1)循环可能但很棘手。
另一种方法是改为使用alias
:
location /v {
alias /path/to/storage/app/media;
}
location /storage/app/media {
rewrite ^/storage/app/media(.*)$ /v$1 permanent;
}
有关详细信息,请参阅this document。