Frage

Ich habe folgende Apache Rewrite-Regel

<IfModule rewrite_module>
     RewriteEngine on
     RewriteMap tolowercase int:tolower
     RewriteCond $2 [A-Z] 
     RewriteRule ^(.*)/(.*).html$ $1/${tolowercase:$2}.html [R=301,L]
</IfModule>

, die diese Änderungen:

http://localhost.localdomain.com/FooBarBaz.html

folgt aus:

http://localhost.localdomain.com/foobarbaz.html

würde ich zu portieren möchte es dieses tuckey.org URL Rewrite Filter .

Was ist ein äquivalentes Regel, dass ich die URL Klein machen verwenden zu können? Ich bin besonders daran interessiert, wie die Bedingung Element zu bilden.

Hier ist mein erster Schnitt in der Regel, aber es funktioniert nicht, auch ohne die Bedingung:

<rule>
    <name>Force URL filenames to lower case</name>
    <from>^(.*)/(.*).html$</from>
    <to type="permanent-redirect" last="true">$1/${lower:$2}.html</to>
</rule>
War es hilfreich?

Lösung

Hier ist, was ich schließlich ließ sich auf:

<rule match-type="regex">
    <name>Force URL filenames to lower case</name>
    <condition type="request-uri" casesensitive="false" operator="notequal">^.*/a4j.*$</condition>
    <condition type="request-uri" casesensitive="true">^.*/.*[A-Z].*.html$</condition>
    <from>^(.*)/(.*).html$</from>
    <to type="permanent-redirect" last="true">$1/${lower:$2}.html</to>
</rule>

Die erste Bedingung ist die Regel vom Laufen auf A4J AJAX-Anforderungen zu verhindern.

Andere Tipps

Sean,

Sie brauchen nicht eine Bedingung, dies zu tun (mit Ausnahme der ignorieren auf die AJAX-Anrufe). Mehr das Bedingungselement wichtig ist, hat keine Groß- und Kleinschreibung Attribut , nur das von dem Element der Fall ist. Sobald ich das erkannte, konnte ich die Regel als schreiben:

<rule match-type="regex">  
    <note>Force URL to lower case</note>
    <from casesensitive="true">^.*[A-Z].*$</from>
    <to type="permanent-redirect" last="true">${lower:$0}</to>  
</rule>

Hinweis: Dies funktioniert für die gesamte Pfad Anfrage (wenn auch nicht die Abfragezeichenfolgeflag).

Ich stolperte über Ihren Beitrag, da die Filterregel URL Rewrite Ich war gegeben, die viel wie Ihr sah nicht funktionierte. Durch eine Tonne von Versuch und Irrtum, fand ich schließlich, dass das Problem überhaupt nicht mit dem regulären Ausdruck war. Es war, dass es betrug Matching aber war nicht Groß- und Kleinschreibung, so dass ich unendlich Umleitungen bekam.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top