あなたが意味する場合、これは動作するはずです「私は除いて第六の任意のレベルを書き換えたい」:
RewriteEngine On
RewriteMap lc int:tolower
RewriteCond %{REQUEST_URI} [A-Z]
RewriteCond %{REQUEST_URI} !^((/[^A-Z/]+){5})(/[^/]*[A-Z][^/]*)(/[^A-Z/]+)*/?$
RewriteRule ^((/[^/]+){1,5})((/[^/]+)((/[^/]+)*))? ${lc:$1}$4${lc:$5} [L,R=301]
は(RewriteMap命令がで作業し、そうしないため、「/」で始まるURLに注意してください。 .htaccessで動作しないようです)
最初の5つのマッチと小文字を取り、6番目のままにして、その後はすべて小文字にします。その後のレベル(存在する場合)。あなたが唯一のこれまで6つのレベルに到達する(と第六を書き換えてはいけません)場合
これで十分です。
RewriteEngine オンRewriteMap命令LC int型: するRewriteCondの%{REQUEST_URI} [AZ] するRewriteCond TOLOWER [//^ /] +(^ [(/ [^ AZ /] +){5})(/ [^ /] + ){1,5})(/ [^ /] +)/? $ {LC:$ 1} $ 4 [L、R = 301]
でテスト :ラインの説明によって
/monitors/services/awe/AWE --> /monitors/services/awe/awe
/monitors/services/awe/awe-prod/awr02.awe-prod.a/Read_job_245/ --> No change
/MONITORS/SERVICES/awe/awe-prod/awr02.awe-prod.a/Read_job_245/ --> /monitors/services/awe/awe-prod/awr02.awe-prod.a/Read_job_245/
/MONITORS/SERVICES/awe/awe-prod/awr02.awe-prod.a/Read_job_245/AAA/BBB/ --> /monitors/services/awe/awe-prod/awr02.awe-prod.a/Read_job_245/aaa/bbb/ (using 1st rule set)
ライン:
#Enable mod_rewrite
RewriteEngine On
#Create mapping to lower case
RewriteMap lc int:tolower
#Match URLs with upper-case characters
RewriteCond %{REQUEST_URI} [A-Z]
#Stop rewrite loop when upper-case is in the allowed 6th level
RewriteCond %{REQUEST_URI} !^((/[^A-Z/]+){5})(/[^/]*[A-Z][^/]*)/?$
#Rewrite URL to lower case
RewriteRule ^((/[^/]+){1,5})(/[^/]+)/? ${lc:$1}$4 [L,R=301]