2014-04-24 272 views
1

我試圖將文件夾中的請求轉換爲該文件夾內的另一個子文件夾。讓我來解釋:將文件夾重寫到該文件夾​​內的另一個子文件夾

轉換:本地主機/ myproject的/編譯/ CSS/style.css中

要:本地主機/ myproject的/生成的/ dev/CSS/style.css中

所以,我需要在'build /'文件夾後向'/ dev'添加請求。我有什麼?:

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

而且我得到來自Apache的一個無限循環:

[週四17年4月24日:56:39.721756 2014] [核心:錯誤] [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 

所以我只需要趕上了一次改寫請求。任何想法?

回答

0

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

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

工作!謝謝;) – nikoskip

+0

不客氣,很高興它的工作。 – anubhava

0

這應該工作:

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

以上將檢查,看看是否build/dev/在URL中已經,這是它不會重定向。如果build/位於導致重定向循環的url中,您可以添加dev/

+0

我得到一個循環你的建議:( – nikoskip

+0

試一下,做了更改 – Howli

+0

現在我得到一個。 301和接下來的404.它從/mycompany/myproject/dmj/build/css/styles.css到/build/dev/css/styles.css – nikoskip

相關問題