Ich habe Apache nicht praktisch, zu testen, aber eine Kombination dieser Regeln sollte das tun, was Sie wollen:
RewriteEngine on
RewriteMap lower int:tolower
RewriteCond ${lower:%{REQUEST_URI}} -U
RewriteRule [A-Z] ${lower:%{REQUEST_URI}} [R=302,L]
- Ein Kleinen Karte/etwas konvertieren/etwas
- eine Bedingung zu sehen, ob der Klein der REQUEST_URI existiert (-U ist interne apache-Abfrage)
- die Regel tatsächlich tut dem Umschreiben
Ich weiß nicht, ob die RewriteMap in einer Bedingung angewendet werden kann oder ob sie nur für eine Regel gilt. Diese basieren auf experts exchange accepted answer und a small orange forum discussion.
Ihre "ideale" Lösung ist wahrscheinlich nicht möglich, es sei denn, Sie können jede gültige Seite auf Ihrer Site aufzählen. Wenn Sie nur ein paar gültige Seiten haben, wird eine Kombination aus RewriteMap und einer Textkarte genau das tun, was Sie brauchen. Wenn Hunderte/Tausende von Seiten vorhanden sind, müssen Sie möglicherweise ein Skript schreiben und die Anweisung prg
verwenden.
Wenn Sie nicht jede gültige Seite identifizieren können, müssen Sie jede Variante für den Fall testen. Betrachten Sie Ihre URL als binäre Zeichenfolge, wobei 0 für Kleinbuchstaben und 1 für Großbuchstaben steht. Nur von Ihrem einfachen Beispiel müssten Sie 2^17 Variationen, 128k Seiten testen.
Ich würde lieber eine 301 als eine 302 verwenden. – Gumbo