1
我有这样的规则:mod_speling内部重定向,或如何处理与瓶盖的mod_rewrite
RewriteRule ^(panel|admin|site)/([A-Za-z0-9]+?)/(scripts|assets)/(.*)$ Project/$2/Public/$3/$1/$4 [L]
的想法是允许访问的公共资产,因为它们存在的代码中的模块。唯一的问题是命名方案需要标题案例(让我们假设这是不可改变的)。因此,一个请求:
/site/users/scripts/myscript.js
返回404,但:
/site/Users/scripts/myscript.js
作品。
我试图使用mod_speling对付外壳的问题,但是mod_speling做一个完整的重定向,而不是一个内部的,因此URL给最终用户的变化:
/Project/Users/Public/scripts/myscript.js
这是没有好。这意味着我的目录结构有点暴露,这意味着我需要一个额外的重写规则来传递它。
有没有办法更好地处理mod_rewrite中的大写字母,即不使用RewriteMap? (需要保持在.htaccess中的一切)
另外,有没有办法改变mod_speling使用内部重定向?
由于某些未知原因,在使用它们之前(例如'RewriteMap tolower int:tolower'),您必须手动定义内部'RewriteMap'函数,这涉及编辑服务器/虚拟主机配置。这是不幸的,因为这绝对是这里工作的最佳工具。 – 2010-09-06 17:28:01
是的,这是我一直在跑的墙。 :(我们部署在各种各样的服务器上,我通常没有那么多的访问权限,所以我不能假设我有它。 – jhogendorn 2010-09-07 00:50:39
我打算把这个标记为正确答案,它并不是真的“正确”在回答这个问题的标准时,但由于这是不可能的,所以这个答案就近了:) – jhogendorn 2011-03-10 23:09:07