Apache mod_rewrite htaccess问题

时间:2009-08-22 13:46:00

标签: apache .htaccess mod-rewrite

我有一个规则,它最多由三部分组成,用/(斜杠)分隔。 它们代表 / app / controller / action ,但它们是可选的,即 / / app / app / controller < / strong>也工作。

问题是,我需要另一个规则,在此之前,将默认应用设置为“前端”,我认为它应该是这样的:

RewriteRule ^(.*)$ frontend/$1

但是,如果我有网址 / part1 ,一切正常,并收到 / frontend / part1 。但是,如果网址包含/(斜杠),例如 / part1 / part2 ,则会出现500内部错误。如果我删除此规则,则初始规则适用于 / frontend / part1 / part2 ,因此问题在此规则范围内。好像1美元不接受斜线。这是一个众所周知的事实吗?

而且,如果当前网址已经从前端/开始,我想这条规则不会运行,我在想这样的事情:

RewriteRule ^frontend(/.*)?$ frontend$1 [S=1]

或者用RewriteCond可以做得更优雅吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

尝试此规则:

RewriteCond $0 !^frontend/
RewriteRule .* frontend/$0 [L]