-1

我知道必须先定义 RewriteMap 才能在 .htaccess 文件中使用它。但我不确定我是否可以在共享主机中做到这一点。有什么办法可以在服务器上自己做吗?

我想要做的是将大写的 URL 重定向到小写。我正在尝试使用 .htaccess 来做到这一点(如果有任何其他可行的选择,请描述)。但是当我尝试使用 RewriteMap 时,它说不允许。我了解到您需要先定义它。所以,我需要知道我是否可以在服务器上自己做。

请不要给出诸如询问主持人或技术支持之类的答案。我要这样做。但在此之前,我想了解一些有关这方面的信息。很多时候技术团队不够好。有时我们往往比他们拥有更多的知识,而且我经常发现他们有意或无意地提供了不正确的信息。我也希望其他有类似问题的人得到他们的答案。所以我发布了这个问题。

我也愿意接受任何建议在不使用 RewriteMap 的情况下执行此重定向。我已经看到了一些进行重定向的规则,但它不正确。他们有一些问题。

任何帮助都将受到欢迎和赞赏。

谢谢你。

4

1 回答 1

0

我无法定义 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(.*)$ $1a$2
RewriteRule ^([^B]*)B(.*)$ $1b$2
RewriteRule ^([^C]*)C(.*)$ $1c$2
RewriteRule ^([^D]*)D(.*)$ $1d$2
RewriteRule ^([^E]*)E(.*)$ $1e$2
RewriteRule ^([^F]*)F(.*)$ $1f$2
RewriteRule ^([^G]*)G(.*)$ $1g$2
RewriteRule ^([^H]*)H(.*)$ $1h$2
RewriteRule ^([^I]*)I(.*)$ $1i$2
RewriteRule ^([^J]*)J(.*)$ $1j$2
RewriteRule ^([^K]*)K(.*)$ $1k$2
RewriteRule ^([^L]*)L(.*)$ $1l$2
RewriteRule ^([^M]*)M(.*)$ $1m$2
RewriteRule ^([^N]*)N(.*)$ $1n$2
RewriteRule ^([^O]*)O(.*)$ $1o$2
RewriteRule ^([^P]*)P(.*)$ $1p$2
RewriteRule ^([^Q]*)Q(.*)$ $1q$2
RewriteRule ^([^R]*)R(.*)$ $1r$2
RewriteRule ^([^S]*)S(.*)$ $1s$2
RewriteRule ^([^T]*)T(.*)$ $1t$2
RewriteRule ^([^U]*)U(.*)$ $1u$2
RewriteRule ^([^V]*)V(.*)$ $1v$2
RewriteRule ^([^W]*)W(.*)$ $1w$2
RewriteRule ^([^X]*)X(.*)$ $1x$2
RewriteRule ^([^Y]*)Y(.*)$ $1y$2
RewriteRule ^([^Z]*)Z(.*)$ $1z$2
RewriteRule [A-Z] - [N]
RewriteCond %{ENV:HASCAPS} TRUE
RewriteRule ^/?(.*) /$1 [R=301,L]
</IfModule>
于 2018-08-03T09:58:58.670 回答