Jag hjälpte till i PM, men här kommer en sammanfattning av problemet och lösningen.
Det finns felaktiga länkar i Googles resultat som pekar mot http://www.minsida.com/fel/fel/något.html men ska leda till http://www.minsida.com/något.html
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+/)+([^/]+)$ /$2 [R=301,L]
De två första raderna är conditions som appliceras på nästföljande regel. De två första villkoren betyder att regeln inte appliceras om adressen leder till en katalog eller fil (d som i directory, f som i file.) Meningen med detta är att riktiga filer som ligger i en admin-katalog inte ska påverkas av denna regel och riktas om.
^ matcha början av uttrycket.
Delförklaring av ([^/]+/)+
[^/] matcha ett tecken som inte är en slash.
+ upprepning av det tidigare, en eller flera gånger.
/ matcha en slash.
[^/]+/ kan alltså matcha blabla/ eller liknande.
()+ betyder "gruppera det som finns innanför parenteserna". + betyder som tidigare en eller flera upperpningar. Grupperingen används här för att kunna upprepa ett helt underuttryck.
([^/]+/)+ i sin helhet kan matcha t ex blabla/ , blabla/blabla/ eller blabla/blabla/blabla/
Delförklaring av ([^/]+)
() Betyder även här gruppering, men meningen med denna gruppering är att kunna få ut den matchande strängen ur uttrycket. Eftersom detta är den andra gruppen motsvarar innehåller i parentesen $2 senare i regeln.
[^/] som tidigare, matcha ett tecken som inte är /
+ som tidigare, en eller fler upprepningar
$ markerar matching av slutet av strängen, dvs inget får komma efter.
Delförklaring av /$2
Detta är destinationsadressen.
/ en enkel framåtslash. Betyder att adressen ska utgå från webbroten istället för relativt vad webbläsaren tror är den nuvarande mappen.
$2 betyder matchning nr 2 från uttrycket.
Med andra ord, i alla dessa adresser kommer strängen 123 plockas ut, och bilda /123 som destinationsadress.
blabla/123
blabla/blabla/123
blabla/blabla/blabla/123
Delförklaring av [R=301,L]
R=301 betyder att denna regel inte är en intern omriktning (rewrite) utan en redirect som säger åt webbläsaren att gå till en annan sida. 301 står för statuskoden för en sida som har flyttat permanent.
L betyder att denna regel räknas som den sist (last) och att inga mer regler ska behandlas efter denna.