[英]Nginx path folder rewrite
用Nginx重寫簡單的路徑,我無法正常工作。
由此:
/assets/sites/fpi/css/reset.css
對此:
/assets/sites/default/css/reset.css
我的規則如下:
rewrite ^/assets/sites(.+)$ /assets/sites/default/$1 last;
/ **更新** /
到目前為止,感謝您提供的有用答案。 我想要一種更通用的方法來定位URL路徑的“ fpi”部分。
就像是:
<pre>
rewrite ^(/assets/sites)/\w*/(.*)$ $1/default/$2 last;
</pre>
它將與該部分的任何部分匹配,因此所有與該模式匹配的網址:
<pre>
/assets/sites/fpi/css/reset.css
/assets/sites/gbc/css/reset.css
/assets/sites/ekg/css/reset.css
</pre>
將轉換為:
<pre>
/assets/sites/default/css/reset.css
/assets/sites/default/css/reset.css
/assets/sites/default/css/reset.css
</pre>
謝謝
代替last
,使用break
, redirect
或permanent
。 差異是細微的:
break
的規則,則它將導致忽略任何后續的重寫規則。 與last
不同,此后不會再處理其他重寫規則,並且規則本身無法重新評估 。 我個人會主張permanent
。 給您的訪問者一個緩存CSS樣式表的機會。
您的正則表達式與您的規范不符。 用這個:
rewrite ^(/assets/sites)/fpi/(.*)$ $1/default/$2 last;
示例中的正則表達式帶有fpi。
從文檔中:
最后重寫-完成對當前重寫指令的處理,並通過從所有可用位置搜索URI上的匹配項來重新啟動過程(包括重寫)。
您重寫的URL將與要匹配的模式匹配,因此它將不斷對其進行重寫。
您應該更改匹配器(或重寫的路徑)以使其不再匹配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.