2014-04-24 224 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

相关问题