Ich möchte, dass die folgende(n) URL(s) auf dieselbe URL umgeleitet wird, nur ohne das ?
Zum Beispiel:
https://www.example.com/this-is-static?numbersletterssymbols
geht zu
https://www.example.com/this-is-static
"Zahlenbuchstabensymbole" können alles sein
Ich möchte, dass dies ein 301 ist, mit htaccess (Apache)
Ich bin auf Folgendes gestoßen, die Variable scheint jedoch in Klammern zu stehen
RewriteCond %{QUERY_STRING} ^product=(.*)$
RewriteRule ^test.php$ %1/? [R=301,L]
Jeder Einblick ist willkommen
Um die Abfragezeichenfolge (eine beliebige Abfragezeichenfolge) von einer beliebigen URL zu entfernen, können Sie mit mod_rewrite am Anfang Ihrer .htaccess
Datei Folgendes tun :
RewriteEngine On
RewriteCond %{QUERY_STRING} .
RewriteRule ^ %{REQUEST_URI} [QSD,R=301,L]
Die Bedingung ( RewriteCond
Direktive) behauptet einfach, dass es eine Abfragezeichenfolge gibt, die aus mindestens 1 Zeichen besteht (bestimmt durch die Regex .
- ein einzelner Punkt).
Das QSD
Flag (Abfragezeichenfolge verwerfen) entfernt die ursprüngliche Abfragezeichenfolge aus der umgeleiteten Antwort. Das QSD
Flag erfordert Apache 2.4 (den Sie höchstwahrscheinlich verwenden). Die bei früheren Apache-Versionen verwendete Methode besteht wie in Ihrem Beispiel darin, a ?
an die Ersatzzeichenfolge (im Wesentlichen eine leere Abfragezeichenfolge) anzuhängen .
Beachten Sie, dass Sie zuerst mit einer 302 (temporären) Weiterleitung testen sollten, um potenzielle Caching-Probleme zu vermeiden.
die Variable scheint jedoch in Klammern zu stehen
Die Klammern in der Regex erzeugen einfach eine "einfangende Gruppe", auf die später mit einer Rückreferenz verwiesen werden kann. z.B. In Ihrem Beispiel wird der Wert des product
URL-Parameters in der RewriteRule
Substitutionszeichenfolge mithilfe der %1
Rückreferenz referenziert, um auf den Wert des URL-Parameters umzuleiten . Dies unterscheidet sich stark von dem, was Sie versuchen, und ist wohl ein Sicherheitsproblem. z.B. Es würde eine Anfrage an /test.php?product=https://malicious.com
an umleiten https://malicious.com/
und es einem potenziellen Hacker ermöglichen, Datenverkehr über Ihre Website weiterzuleiten.
UPDATE: ist es möglich, dass dies nur funktioniert, wenn die URL mit "this-is-static" beginnt (zum Beispiel)
Ja, das RewriteRule
Muster (1. Argument) entspricht dem URL-Pfad, abzüglich des Schrägstrich-Präfixes. Zum Beispiel:
RewriteCond %{QUERY_STRING} .
RewriteRule ^this-is-static %{REQUEST_URI} [QSD,R=301,L]
Entspricht allen URLs, die mit beginnen /this-is-static
.
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen