Ich habe ein Problem mit dem Versuch, nachstehende Schrägstriche vom Ende einer Abfragezeichenfolge in Apache zu entfernen.
Ich habe jetzt die folgenden Regeln zum Umschreiben, um die URL und den Abfrage-String in Kleinbuchstaben zu machen:
RewriteEngine On
RewriteMap lc int:tolower
RewriteCond %{REQUEST_URI} ^[^A-Z]*[A-Z].* [OR]
RewriteCond %{QUERY_STRING} ^[^A-Z]*[A-Z].*
RewriteRule ^ ${lc:%{REQUEST_URI}}?${lc:%{QUERY_STRING}} [L,R=301]
Ich habe versucht hinzuzufügen:
RewriteCond %{QUERY_STRING} (.+)/$
RewriteRule ^ %1 [R=301,L]
Aber es bricht die Website. Ich habe nach einem Weg gesucht, aber ich habe noch keine Lösungen gefunden. Ich habe die Antworten ausprobiert dieser Beitrag aber sie haben nicht funktioniert.
Der Grund, warum ich das tun muss, ist weil unserDie Anwendungsfirewall sucht in der URL nach "ID". Wenn danach ein nicht alphanumerisches Zeichen erscheint, wird die Anforderung blockiert. Die Firewall wird implementiert, nachdem die Apache-Anfrage den Server erreicht hat.
Ich hoffe, dass jemand mit mehr Erfahrung mit Apache Rewrite-Regeln helfen kann. Danke im Voraus.
Antworten:
4 für die Antwort № 1Um den nachstehenden Schrägstrich aus der Abfragezeichenfolge zu entfernen, können Sie diese Regel verwenden:
RewriteCond %{QUERY_STRING} ^(.+)/$
RewriteRule ^ %{REQUEST_URI}?%1 [R=301,L,NE]
Stellen Sie sicher, dass dies die erste Regel in Ihrem .htaccess ist RewriteEngine On
Linie.