在Nginx中简单的路径重写,我无法让它工作.
由此:
/assets/sites/fpi/css/reset.css
Run Code Online (Sandbox Code Playgroud)
对此:
/assets/sites/default/css/reset.css
Run Code Online (Sandbox Code Playgroud)
我的规则看起来像这样:
rewrite ^/assets/sites(.+)$ /assets/sites/default/$1 last;
Run Code Online (Sandbox Code Playgroud)
/**更新**/
感谢目前为止提供的有用答案.我想要一种更通用的方法来定位URL路径的"fpi"部分.
就像是:
<pre>
rewrite ^(/assets/sites)/\w*/(.*)$ $1/default/$2 last;
</pre>
Run Code Online (Sandbox Code Playgroud)
哪个匹配该部分的任何部分,以便所有匹配此模式的URL:
<pre>
/assets/sites/fpi/css/reset.css
/assets/sites/gbc/css/reset.css
/assets/sites/ekg/css/reset.css
</pre>
Run Code Online (Sandbox Code Playgroud)
会转移到:
<pre>
/assets/sites/default/css/reset.css
/assets/sites/default/css/reset.css
/assets/sites/default/css/reset.css
</pre>
Run Code Online (Sandbox Code Playgroud)
谢谢
而不是last,使用break,redirect或permanent.差异很微妙:
break触发了包含规则,则会导致忽略任何后续重写规则.与此不同last,不会从那里处理其他重写规则,并且规则无法自行重新评估.我permanent个人主张.为访问者提供缓存CSS样式表的机会.
你的正则表达式与你的规范不符.用这个:
rewrite ^(/assets/sites)/fpi/(.*)$ $1/default/$2 last;
Run Code Online (Sandbox Code Playgroud)
示例中的正则表达式使用fpi.
| 归档时间: |
|
| 查看次数: |
6164 次 |
| 最近记录: |