我可以在共享托管 Apache 服务器上使用 RewriteMap 吗?
Can I use RewriteMap on shared hosting Apache server?
我知道 RewriteMap 必须先定义,然后才能在 .htaccess 文件中使用。但我不确定我是否可以在共享主机中做到这一点。有什么办法自己在服务器上做吗?
我想做的是将 URL 的大写重定向到小写。我正在尝试使用 .htaccess 来做到这一点(如果有任何其他可行的替代方案,请描述)。但是当我尝试使用 RewriteMap 时,它说不允许。我了解到您需要先定义它。所以,我需要知道我是否可以在服务器上自己做。
请不要给出类似询问主机或技术支持的答案。我打算这样做。但在此之前,我想了解一些这方面的信息。很多时候技术团队不够好。有时我们往往比他们拥有更多的知识,而且我经常发现他们有意或无意地提供了不正确的信息。我也希望其他有类似问题的人得到他们的答案。所以我发布这个问题。
我也愿意接受任何不使用 RewriteMap 进行重定向的建议。我看到了一些进行重定向的规则,但这是不正确的。他们有一些问题。
欢迎并感谢任何帮助。
谢谢。
我无法定义 RewriteMap,但我将大写字符 URL 重定向为小写字符的问题已解决。
这是支持团队提供的解决方案。感谢提供解决方案的Alex
我测试过它,效果很好。希望这对其他人也有帮助。
我看到了一些类似的解决方案,但没有正常工作,有人提醒注意性能问题。据说使用了过多的 RAM。如果有人发现任何性能问题,请对此发表评论。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule [A-Z] - [E=HASCAPS:TRUE,S=1]
RewriteRule ![A-Z] - [S=28]
RewriteRule ^([^A]*)A(.*)$ a
RewriteRule ^([^B]*)B(.*)$ b
RewriteRule ^([^C]*)C(.*)$ c
RewriteRule ^([^D]*)D(.*)$ d
RewriteRule ^([^E]*)E(.*)$ e
RewriteRule ^([^F]*)F(.*)$ f
RewriteRule ^([^G]*)G(.*)$ g
RewriteRule ^([^H]*)H(.*)$ h
RewriteRule ^([^I]*)I(.*)$ i
RewriteRule ^([^J]*)J(.*)$ j
RewriteRule ^([^K]*)K(.*)$ k
RewriteRule ^([^L]*)L(.*)$ l
RewriteRule ^([^M]*)M(.*)$ m
RewriteRule ^([^N]*)N(.*)$ n
RewriteRule ^([^O]*)O(.*)$ o
RewriteRule ^([^P]*)P(.*)$ p
RewriteRule ^([^Q]*)Q(.*)$ q
RewriteRule ^([^R]*)R(.*)$ r
RewriteRule ^([^S]*)S(.*)$ s
RewriteRule ^([^T]*)T(.*)$ t
RewriteRule ^([^U]*)U(.*)$ u
RewriteRule ^([^V]*)V(.*)$ v
RewriteRule ^([^W]*)W(.*)$ w
RewriteRule ^([^X]*)X(.*)$ x
RewriteRule ^([^Y]*)Y(.*)$ y
RewriteRule ^([^Z]*)Z(.*)$ z
RewriteRule [A-Z] - [N]
RewriteCond %{ENV:HASCAPS} TRUE
RewriteRule ^/?(.*) / [R=301,L]
</IfModule>
我知道 RewriteMap 必须先定义,然后才能在 .htaccess 文件中使用。但我不确定我是否可以在共享主机中做到这一点。有什么办法自己在服务器上做吗?
我想做的是将 URL 的大写重定向到小写。我正在尝试使用 .htaccess 来做到这一点(如果有任何其他可行的替代方案,请描述)。但是当我尝试使用 RewriteMap 时,它说不允许。我了解到您需要先定义它。所以,我需要知道我是否可以在服务器上自己做。
请不要给出类似询问主机或技术支持的答案。我打算这样做。但在此之前,我想了解一些这方面的信息。很多时候技术团队不够好。有时我们往往比他们拥有更多的知识,而且我经常发现他们有意或无意地提供了不正确的信息。我也希望其他有类似问题的人得到他们的答案。所以我发布这个问题。
我也愿意接受任何不使用 RewriteMap 进行重定向的建议。我看到了一些进行重定向的规则,但这是不正确的。他们有一些问题。
欢迎并感谢任何帮助。
谢谢。
我无法定义 RewriteMap,但我将大写字符 URL 重定向为小写字符的问题已解决。
这是支持团队提供的解决方案。感谢提供解决方案的Alex
我测试过它,效果很好。希望这对其他人也有帮助。
我看到了一些类似的解决方案,但没有正常工作,有人提醒注意性能问题。据说使用了过多的 RAM。如果有人发现任何性能问题,请对此发表评论。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule [A-Z] - [E=HASCAPS:TRUE,S=1]
RewriteRule ![A-Z] - [S=28]
RewriteRule ^([^A]*)A(.*)$ a
RewriteRule ^([^B]*)B(.*)$ b
RewriteRule ^([^C]*)C(.*)$ c
RewriteRule ^([^D]*)D(.*)$ d
RewriteRule ^([^E]*)E(.*)$ e
RewriteRule ^([^F]*)F(.*)$ f
RewriteRule ^([^G]*)G(.*)$ g
RewriteRule ^([^H]*)H(.*)$ h
RewriteRule ^([^I]*)I(.*)$ i
RewriteRule ^([^J]*)J(.*)$ j
RewriteRule ^([^K]*)K(.*)$ k
RewriteRule ^([^L]*)L(.*)$ l
RewriteRule ^([^M]*)M(.*)$ m
RewriteRule ^([^N]*)N(.*)$ n
RewriteRule ^([^O]*)O(.*)$ o
RewriteRule ^([^P]*)P(.*)$ p
RewriteRule ^([^Q]*)Q(.*)$ q
RewriteRule ^([^R]*)R(.*)$ r
RewriteRule ^([^S]*)S(.*)$ s
RewriteRule ^([^T]*)T(.*)$ t
RewriteRule ^([^U]*)U(.*)$ u
RewriteRule ^([^V]*)V(.*)$ v
RewriteRule ^([^W]*)W(.*)$ w
RewriteRule ^([^X]*)X(.*)$ x
RewriteRule ^([^Y]*)Y(.*)$ y
RewriteRule ^([^Z]*)Z(.*)$ z
RewriteRule [A-Z] - [N]
RewriteCond %{ENV:HASCAPS} TRUE
RewriteRule ^/?(.*) / [R=301,L]
</IfModule>