2009-10-23 60 views

回答

0

让您解析规则确实很快:在开始

锚,匹配任何不是/或没有任何字符,0或更多次,停泊在年底。

换句话说,它永远不会匹配任何东西,因为.匹配任何东西(因此[^.]不匹配任何东西)。

我想你的意思是:

RewriteCond %{REQUEST_URI} !^/?new/ 
RewriteRule ^/?(.+)$ new/$1 [L] 

这在开始时读取
锚,匹配0或1 /,其次是1个或多个任意字符(节省这场比赛后面再说),锚最后。

(本的RewriteCond防止在/新/目录重写的东西,按德文Ceartas的答案。在[L]阻止进一步的重定向)

+1

在所有的正则表达式语言中,我看到,字符是字面内[ ] – erikkallen 2009-10-23 20:28:33

+0

哎呀,你可能是对的。尽管如此,RegEx仍然是错误的。 – Powerlord 2009-10-23 20:29:19

+0

由于可能的配置错误,请求超出了10个内部重定向的限制。如果需要,使用'LimitInternalRecursion'来增加限制。使用'LogLevel debug'来获得回溯。 – gwegaweg 2009-10-23 20:31:38

1

无论你是否需要一个领先斜杠将取决于您是在httpd.conf文件中还是在.htaccess中或httpd.conf中的容器中执行此操作。

为了避免重写循环,你会想用的RewriteCond,以确保你不配套新/

不知道,如果$ 0语法作品,未经捕获括号?