我有一个规则,它最多由三部分组成,用/(斜杠)分隔。 它们代表 / 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可以做得更优雅吗?
谢谢!
答案 0 :(得分:2)
尝试此规则:
RewriteCond $0 !^frontend/
RewriteRule .* frontend/$0 [L]