【发布时间】:2009-08-22 13:46:00
【问题描述】:
我有一个规则,最多包含三个部分,由 /(斜杠)分隔。 它们代表/app/controller/action,但它们是可选的,即/、/app、/app/controller 也可以。
问题是,我想要另一个规则,在这条规则之前,它将默认应用程序设置为“前端”,我认为它应该如下所示:
RewriteRule ^(.*)$ frontend/$1
但是,如果我有 /part1 网址,一切正常,它会以 /frontend/part1 的形式接收。但是,如果 url 包含 /(斜杠),例如 /part1/part2 ,我会收到 500 内部错误。如果我删除此规则,则最初的规则与 /frontend/part1/part2 一起使用,因此问题出在此规则之内。似乎 $1 不接受其中的斜线。这是众所周知的事实吗?
而且,如果当前 url 已经以 frontend/ 开头,我希望不运行此规则,我在想这样的事情:
RewriteRule ^frontend(/.*)?$ frontend$1 [S=1]
或者这可以用 RewriteCond 更优雅地完成吗?
谢谢!
【问题讨论】:
标签: apache .htaccess mod-rewrite