[英]nginx rewrite uri to file
我需要nginx來打開uri文件,如:
來自/var/www/example.com/en_US/_foo_test_bar的http://example.com/en/foo/test-bar
要么
來自/var/www/example.com/en_US/_foo2_test2_bar的http://example.com/en/foo2/test2-bar
替換除字母/數字之外的所有符號以加下划線。 怎么看這個位置,可能會更好用的是重定向?
location /en/ {
rewrite ...
}
我不知道nginx和regexp中這種機制的最佳實踐。 謝謝。
您可以使用rewrite
來遞歸更改符號,直到它們全部更改為止。 假設真實文件在en_US
下,如您的示例所示:
location /en/ {
rewrite ^/en/(.*)[^A-Za-z0-9_](.*)$ /en/$1_$2 last;
rewrite ^/en/(.*)$ /en_US/$1 last;
}
location /en_US/ {
root /path/to/real/files;
}
第一次rewrite
重復匹配,直到消耗掉所有符號。 第二次rewrite
准備URI以提供真實文件。
有關更多信息,請參閱此文
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.