it-swarm.com.de

Entfernen Sie fb_action_ids von der URL mit .htaccess

Leider lässt der Host meiner Website nicht zu, dass ich mehr als einen .htaccess habe, weshalb ich gezwungen bin, alle Regeln für den Pfad übergeordneter und untergeordneter virtueller/physischer URLs anzugeben. Mein Verzeichnisbaum sieht wie folgt aus:

  • index.html
    • cSS
    • img
    • amixermusic
      • index.php
      • escuchar.php
      • cSS
      • img
      • js

Dies ist der Code für meinen htaccess:

RewriteEngine On +FollowSymlinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([0-9]+)/$ /$1? [R=301,L]
RewriteCond %{HTTP_Host} ^example.com
RewriteRule (.*) http://www.example.com/$1 [R=301,L]

RewriteRule ^amixermusic/escuchar/(.+) /amixermusic/escuchar.php?id=$1
RewriteRule ^amixermusic/buscar/([^/]*)/?(.*) /amixermusic/index.php?q=$1&p=$2

RewriteCond %{QUERY_STRING} fb_action_ids=.*$
RewriteRule .* %{REQUEST_URI}? [R=301,L]

RewriteCond %{QUERY_STRING} fb_comment_id=.*$
RewriteRule .* %{REQUEST_URI}? [R=301,L]

Alles funktioniert gut, außer die Zeilen sind zu entfernen fb_action_ids. Ich weiß nicht, was ich ändern soll. Ich habe vergessen zu erwähnen, dass sich der Like-Button in "escuchar.php" befindet. Dies wird automatisch generiert, indem die URL des Fensters mit PHP ermittelt wird. Also denke ich, die Anweisung sollte das Verzeichnis angeben, nein?

2
Kokox

Ich vermute, dass Ihre Regel nicht ausgelöst wird, weil sie sich am Ende Ihrer Datei befindet. Es folgt auf einige Ihrer anderen Regeln, die als "Letzte" Regeln mit dem Flag [L] markiert sind. Das Verschieben der Regel nach oben in der Datei sollte helfen.

Sie können es auch zu einer einzigen Regel zusammenfassen, indem Sie die Bedingung folgendermaßen definieren:

RewriteCond %{QUERY_STRING} fb_(action|comment)_id
1