1

我有这个规则:

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 以使用内部重定向?

4

1 回答 1

0

更优雅地处理 mod_rewrite 中的大写,即不使用 RewriteMap?

在我看来,您可以使用内部映射功能来降低,并且不需要任何外部文件。还是我错过了什么?

编辑:骇人听闻的答案是每个 AZ 的 26 条重写规则作为第一个字母,替换使用小写字母......或者每个单词的规则(如用户)可以出现在 URL 中

于 2010-09-06T15:50:37.350 回答