Blame view

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