.htaccess-如何将url中的大写字母和重音字母重定向到不重音小写字母?

拉法萨希

RewriteEngine将以下htaccess规则与结合使用,从网址中删除带重音符号的字母

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(A|Á|á|Â|â|Æ|æ|À|à|Å|å|Ã|ã|Ä|ä)(.*?)$
RewriteRule . %1a%3 [R=301,L]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(B)(.*?)$
RewriteRule . %1b%3 [R=301,L]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(C|Ç|ç)(.*?)$
RewriteRule . %1c%3 [R=301,L]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(D)(.*?)$
RewriteRule . %1d%3 [R=301,L]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(E|É|é|Ê|ê|È|è|Ð|ð|Ë|ë)(.*?)$
RewriteRule . %1e%3 [R=301,L]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(F)(.*?)$
RewriteRule . %1f%3 [R=301,L]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(G)(.*?)$
RewriteRule . %1g%3 [R=301,L]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(H)(.*?)$
RewriteRule . %1h%3 [R=301,L]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(I|Í|í|Î|î|Ì|ì|Ï|ï)(.*?)$
RewriteRule . %1i%3 [R=301,L]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(J)(.*?)$
RewriteRule . %1j%3 [R=301,L]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(K)(.*?)$
RewriteRule . %1k%3 [R=301,L]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(L)(.*?)$
RewriteRule . %1l%3 [R=301,L]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(M)(.*?)$
RewriteRule . %1m%3 [R=301,L]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(N|Ñ|ñ)(.*?)$
RewriteRule . %1n%3 [R=301,L]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(O|Ó|ó|Ô|ô|Œ|œ|Ò|ò|Ø|ø|Õ|õ|Ö|ö)(.*?)$
RewriteRule . %1o%3 [R=301,L]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(P|ß|Þ|þ)(.*?)$
RewriteRule . %1p%3 [R=301,L]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(Q)(.*?)$
RewriteRule . %1q%3 [R=301,L]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(R)(.*?)$
RewriteRule . %1r%3 [R=301,L]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(S)(.*?)$
RewriteRule . %1s3 [R=301,L]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(T)(.*?)$
RewriteRule . %1t%3 [R=301,L]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(U|Ú|ú|Û|û|Ù|ù|Ü|ü)(.*?)$
RewriteRule . %1u%3 [R=301,L]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(V)(.*?)$
RewriteRule . %1v%3 [R=301,L]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(W)(.*?)$
RewriteRule . %1w%3 [R=301,L]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(X)(.*?)$
RewriteRule . %1x%3 [R=301,L]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(Y|Ý|ý|Ÿ|ÿ)(.*?)$
RewriteRule . %1y%3 [R=301,L]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteCond %{REQUEST_URI} ^(.*?)(Z)(.*?)$
RewriteRule . %1z%3 [R=301,L]

如何使用RewriteMapmod_speling如本参考文献中所建议的那样改善或简化此代码http : //www.askapache.com/htaccess/rewrite-uppercase-lowercase.html

更新答案根据Samurai8的回答,我已经设置了一个环境变量,以便首先准备所有更改并在最后重定向。这是htaccess另存为UTF-8

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(A|Á|á|Â|â|Æ|æ|À|à|Å|å|Ã|ã|Ä|ä)(.*)$ $1a$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(B)(.*)$ $1b$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(C|Ç|ç)(.*)$ $1c$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(C|Ç|ç)(.*)$ $1c$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(D)(.*)$ $1d$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(E|É|é|Ê|ê|È|è|Ð|ð|Ë|ë)(.*)$ $1e$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(F)(.*)$ $1f$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(G)(.*)$ $1g$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(H)(.*)$ $1h$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(I|Í|í|Î|î|Ì|ì|Ï|ï)(.*)$ $1i$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(J)(.*)$ $1j$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(K)(.*)$ $1k$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(L)(.*)$ $1l$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(M)(.*)$ $1m$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(N|Ñ|ñ)(.*)$ $1n$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(O|Ó|ó|Ô|ô|Œ|œ|Ò|ò|Ø|ø|Õ|õ|Ö|ö)(.*)$ $1o$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(P|ß|Þ|þ)(.*)$ $1p$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(Q)(.*)$ $1q$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(R)(.*)$ $1r$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(S)(.*)$ $1s$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(T)(.*)$ $1t$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(U|Ú|ú|Û|û|Ù|ù|Ü|ü)(.*)$ $1u$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(V)(.*)$ $1v$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(W)(.*)$ $1w$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(X)(.*)$ $1x$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(Y)(.*)$ $1y$3 [E=Redirect:1,N,R=301]
RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(Z)(.*)$ $1z$3 [E=Redirect:1,N,R=301]
RewriteCond %{ENV:Redirect} =1
RewriteRule ^ - [R,L,E=!Redirect]

有益的参考

武士8

我使用它的方法是将.htaccess文件另存为utf-8。有关如何执行此操作的说明,请参见vim如果您使用其他编辑器,则需要进行一些搜索。如果该.htaccess文件不是另存为utf-8文件,而是另存为ascii文件,则RewriteRules将保留“奇怪字符”。例如localhost/à将被重写localhost/a¡为。我只能猜测其原因,但是我认为这是因为Apache假定字符串具有与实际不同的其他字符编码。

如果一切正常,您可以更改[R][R=301]永久重定向。永久重定向由浏览器缓存,从而减少了服务器对将来请求的负载,但是如果您仍在测试中,则它们会使重写混乱,因为可以缓存旧的重写。

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(Á|á|Â|â|Æ|æ|À|à|Å|å|Ã|ã|Ä|ä|A)(.*)$ $1a$3 [E=Redirect:1,N,R]

RewriteCond %{REQUEST_METHOD}  !=POST
RewriteRule ^(.*)(B)(.*)$ $1b$3 [E=Redirect:1,N,R]

#etc...

RewriteCond %{ENV:Redirect} =1
RewriteRule ^ - [R,L,E=!Redirect]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

.htaccess-如何将url中的大写字母和带重音符号的字母重定向到不带重音的小写字母?

来自分类Dev

htaccess-结合使用下划线和连字符,将大写字母和小写字母301重定向

来自分类Dev

htaccess-结合使用下划线和连字符,将大写字母和小写字母301重定向

来自分类Dev

替换.htaccess中的小写字母

来自分类Dev

替换.htaccess中的小写字母

来自分类Dev

在.htaccess中将大写字母转换为小写

来自分类Dev

.htaccess 301重定向规则由于大写字母不起作用

来自分类Dev

.htaccess文件行为异常,无法使用小写字母

来自分类Dev

.htaccess文件行为异常,无法使用小写字母

来自分类Dev

当特定的网址至少包含一个大写字母时,如何重定向到小写字母

来自分类Dev

如何将大写字母转换为小写字母?

来自分类Dev

如何将varchar(如“ ABCxxz”)拆分为大写字母“ ABC”和小写字母“ xxz”?

来自分类Dev

用大写字母和小写字母替换大写字母

来自分类Dev

Firebase中的字典顺序(重音和大写字母)

来自分类Dev

Firebase中的字典顺序(重音和大写字母)

来自分类Dev

如何将带重音的小写字母变为大写?-使用'tr'命令

来自分类Dev

C#如何将特定的小写字母同时转换为大写和大写字母同时转换为小写

来自分类Dev

如何在Prolog中找到大写字母,小写字母和单词的数量

来自分类Dev

Microsoft Word,如何将小写字母更改为大写字母,以及如何将大写字母更改为大写字母

来自分类Dev

如何验证字符串中相同,重复的大写字母和小写字母?

来自分类Dev

如何将大写字母转换为小写?

来自分类Dev

.htaccess我要重写字母-字母/数字中的数字

来自分类Dev

小写字母到大写字母(如果条件使用)?

来自分类常见问题

Swift在大写字母“ Self”和小写字母“ self”之间的区别

来自分类Dev

计算具有自己功能的数字,大写字母,小写字母和空格

来自分类Dev

在大写字母和小写字母之间拆分单词

来自分类Dev

在结构中使用大写字母和小写字母的区别

来自分类Dev

比较小写字母和大写字母。

来自分类Dev

Haskell的首次尝试:将小写字母转换为大写字母

Related 相关文章

  1. 1

    .htaccess-如何将url中的大写字母和带重音符号的字母重定向到不带重音的小写字母?

  2. 2

    htaccess-结合使用下划线和连字符,将大写字母和小写字母301重定向

  3. 3

    htaccess-结合使用下划线和连字符,将大写字母和小写字母301重定向

  4. 4

    替换.htaccess中的小写字母

  5. 5

    替换.htaccess中的小写字母

  6. 6

    在.htaccess中将大写字母转换为小写

  7. 7

    .htaccess 301重定向规则由于大写字母不起作用

  8. 8

    .htaccess文件行为异常,无法使用小写字母

  9. 9

    .htaccess文件行为异常,无法使用小写字母

  10. 10

    当特定的网址至少包含一个大写字母时,如何重定向到小写字母

  11. 11

    如何将大写字母转换为小写字母?

  12. 12

    如何将varchar(如“ ABCxxz”)拆分为大写字母“ ABC”和小写字母“ xxz”?

  13. 13

    用大写字母和小写字母替换大写字母

  14. 14

    Firebase中的字典顺序(重音和大写字母)

  15. 15

    Firebase中的字典顺序(重音和大写字母)

  16. 16

    如何将带重音的小写字母变为大写?-使用'tr'命令

  17. 17

    C#如何将特定的小写字母同时转换为大写和大写字母同时转换为小写

  18. 18

    如何在Prolog中找到大写字母,小写字母和单词的数量

  19. 19

    Microsoft Word,如何将小写字母更改为大写字母,以及如何将大写字母更改为大写字母

  20. 20

    如何验证字符串中相同,重复的大写字母和小写字母?

  21. 21

    如何将大写字母转换为小写?

  22. 22

    .htaccess我要重写字母-字母/数字中的数字

  23. 23

    小写字母到大写字母(如果条件使用)?

  24. 24

    Swift在大写字母“ Self”和小写字母“ self”之间的区别

  25. 25

    计算具有自己功能的数字,大写字母,小写字母和空格

  26. 26

    在大写字母和小写字母之间拆分单词

  27. 27

    在结构中使用大写字母和小写字母的区别

  28. 28

    比较小写字母和大写字母。

  29. 29

    Haskell的首次尝试:将小写字母转换为大写字母

热门标签

归档