簡體   English   中英

將文件夾重寫到該文件夾​​內的另一個子文件夾

[英]Rewrite folder to another sub-folder inside that folder

我正在嘗試將請求從文件夾轉換為該文件夾內的另一個子文件夾。 讓我解釋:

轉換: localhost / myproject / build / css / style.css

到: localhost / myproject / build / dev / css / style.css

因此,我需要在“ build /”文件夾后的請求中添加“ / dev”。 我有的?:

RewriteCond %{HTTP_HOST} ^localhost$ [NC]
RewriteRule ^build/(.*) build/dev/$1

而且我從Apache得到無限循環:

[2014年4月24日星期四17:56:39.721756] [core:error] [pid 6980:tid 1660] [client :: 1:55569] AH00124:由於可能的配置錯誤,請求超出了10個內部重定向的限制。 必要時使用'LimitInternalRecursion'增加限制。 使用“ LogLevel調試”獲取回溯。

而且我知道發生了什么,Apache正在這樣做:

build/css/style.css (original request)
build/dev/css/style.css 
build/dev/dev/style.css
build/dev/dev/dev/style.css
.... to the infinite

因此,我只需要捕獲一次重寫請求即可。 任何想法?

這應該工作:

RewriteCond %{HTTP_HOST} ^localhost$ [NC]
RewriteCond %{REQUEST_URI} !^/build/dev/(.*)
RewriteRule ^build/(.*) /build/dev/$1 [R=301]

上面將檢查並查看build/dev/是否已在URL中,因為它不會重定向。 如果在URL中包含build/ ,則會獲得添加dev/的權限,這會導致重定向循環。

一旦添加了/dev您需要使用一個條件來跳過添加:

RewriteCond %{HTTP_HOST} ^localhost$ [NC]
RewriteRule ^build/((?!dev/).*)$ build/dev/$1 [L,NC]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM