【发布时间】:2008-08-06 08:15:28
【问题描述】:
在一个严重依赖.htaccess RewriteRules 的PrettyURLs(在我的例子中是CakePHP)的应用程序中,我如何正确设置指令以从重写中排除某些目录?那就是:
/appRoot/.htaccess
app/
static/
默认情况下,对/appRoot/* 的每个请求都将被重写,以供app/webroot/index.php 接收,在那里对其进行分析并调用相应的控制器操作。这是由.htaccess 中的这些指令完成的:
RewriteBase /appRoot
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
我现在想从这次重写中排除一些目录,如 static/。我在Cake RewriteRules之前尝试过这个:
RewriteCond $1 ^(static|otherDir).*$ [NC]
RewriteRule (.*) - [L]
目前它的工作原理是不再重写请求,但现在所有请求都被跳过了,即使是不应该匹配^(static|otherDir).*$的合法Cake请求。
我尝试了这些规则的几种变体,但无法让它按我想要的方式工作。
【问题讨论】:
标签: apache .htaccess mod-rewrite