Преадресация ссылок в нижний регистр
01/27/2015

Сегодня пришла задача на одном из проектов от СЕО что нужно сделать переадресацию с ссылок вида http://vidshup.ru/Games/ на ссылки вида http://vidshup.ru/games/, тоесть редирект с ссылок верхнего регистра в нижний. Первый раз столкнулся с такой проблемой, но решение найдено, внизу код который вносим в .htaccess в mod_rewrite.

  1. # Rewrite uppercase letter URL to lowercase
  2. # Skip next two rules if lowercasing in progress (Remove this rule if case-conversion plug-in below is removed)
  3. RewriteCond %{ENV:qLow} ^yes$ [NC]
  4. RewriteRule . - [S=2]
  5. # Prevent recursion and over-writing of myURI and myQS
  6. RewriteCond %{ENV:qRed} ^yes$ [NC]
  7. RewriteRule .? - [L]
  8. # Get the client-requested full URI and full query string
  9. RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ (/[^?]*)(\?[^\ ]*)?\ HTTP/
  10. RewriteRule .? - [E=myURI:%1,E=myQS:%2]
  11. # Uppercase to lowercase conversion plug-in (This section, along with the first noted rule above,
  12. # may be removed if not needed or wanted) Skip next 28 rules if no uppercase letters in URL
  13. RewriteCond %{ENV:myURI} ![A-Z]
  14. RewriteRule .? - [S=28]
  15. # Else swap them out, one at a time
  16. RewriteCond %{ENV:myURI} ^([^A]*)A(.*)$
  17. RewriteRule . - [E=myURI:%1a%2]
  18. RewriteCond %{ENV:myURI} ^([^B]*)B(.*)$
  19. RewriteRule . - [E=myURI:%1b%2]
  20. RewriteCond %{ENV:myURI} ^([^C]*)C(.*)$
  21. RewriteRule . - [E=myURI:%1c%2]
  22. RewriteCond %{ENV:myURI} ^([^D]*)D(.*)$
  23. RewriteRule . - [E=myURI:%1d%2]
  24. RewriteCond %{ENV:myURI} ^([^E]*)E(.*)$
  25. RewriteRule . - [E=myURI:%1e%2]
  26. RewriteCond %{ENV:myURI} ^([^F]*)F(.*)$
  27. RewriteRule . - [E=myURI:%1f%2]
  28. RewriteCond %{ENV:myURI} ^([^G]*)G(.*)$
  29. RewriteRule . - [E=myURI:%1g%2]
  30. RewriteCond %{ENV:myURI} ^([^H]*)H(.*)$
  31. RewriteRule . - [E=myURI:%1h%2]
  32. RewriteCond %{ENV:myURI} ^([^I]*)I(.*)$
  33. RewriteRule . - [E=myURI:%1i%2]
  34. RewriteCond %{ENV:myURI} ^([^J]*)J(.*)$
  35. RewriteRule . - [E=myURI:%1j%2]
  36. RewriteCond %{ENV:myURI} ^([^K]*)K(.*)$
  37. RewriteRule . - [E=myURI:%1k%2]
  38. RewriteCond %{ENV:myURI} ^([^L]*)L(.*)$
  39. RewriteRule . - [E=myURI:%1l%2]
  40. RewriteCond %{ENV:myURI} ^([^M]*)M(.*)$
  41. RewriteRule . - [E=myURI:%1m%2]
  42. RewriteCond %{ENV:myURI} ^([^N]*)N(.*)$
  43. RewriteRule . - [E=myURI:%1n%2]
  44. RewriteCond %{ENV:myURI} ^([^O]*)O(.*)$
  45. RewriteRule . - [E=myURI:%1o%2]
  46. RewriteCond %{ENV:myURI} ^([^P]*)P(.*)$
  47. RewriteRule . - [E=myURI:%1p%2]
  48. RewriteCond %{ENV:myURI} ^([^Q]*)Q(.*)$
  49. RewriteRule . - [E=myURI:%1q%2]
  50. RewriteCond %{ENV:myURI} ^([^R]*)R(.*)$
  51. RewriteRule . - [E=myURI:%1r%2]
  52. RewriteCond %{ENV:myURI} ^([^S]*)S(.*)$
  53. RewriteRule . - [E=myURI:%1s%2]
  54. RewriteCond %{ENV:myURI} ^([^T]*)T(.*)$
  55. RewriteRule . - [E=myURI:%1t%2]
  56. RewriteCond %{ENV:myURI} ^([^U]*)U(.*)$
  57. RewriteRule . - [E=myURI:%1u%2]
  58. RewriteCond %{ENV:myURI} ^([^V]*)V(.*)$
  59. RewriteRule . - [E=myURI:%1v%2]
  60. RewriteCond %{ENV:myURI} ^([^W]*)W(.*)$
  61. RewriteRule . - [E=myURI:%1w%2]
  62. RewriteCond %{ENV:myURI} ^([^X]*)X(.*)$
  63. RewriteRule . - [E=myURI:%1x%2]
  64. RewriteCond %{ENV:myURI} ^([^Y]*)Y(.*)$
  65. RewriteRule . - [E=myURI:%1y%2]
  66. RewriteCond %{ENV:myURI} ^([^Z]*)Z(.*)$
  67. RewriteRule . - [E=myURI:%1z%2]
  68. # Set lowercasing-in-progress flag
  69. RewriteRule . - [E=qLow:yes]
  70. # If any uppercase characters remain, re-start mod_rewrite processing from the beginning
  71. RewriteCond %{ENV:myURI} [A-Z]
  72. RewriteRule . - [N]
  73. # If any characters were lowercased, set redirect required flag and reset lowercasing-in-progress
  74. # flag (S=28 from above lands here)
  75. RewriteCond %{ENV:qLow} ^yes$ [NC]
  76. RewriteRule . - [E=qRed:yes,E=qLow:done]
  77. # End Uppercase to lowercase conversion plug-in
  78. RewriteCond %{ENV:qRed} ^yes$ [NC]
  79. RewriteRule .? http://%{HTTP_HOST}%{ENV:myURI}%{ENV:myQS} [R=301,L]

Можете посмотреть работу данного скрипта у меня на сайте

  • Комментарии
Загрузка комментариев...