Problem med 301 redirect, behöver hjälp

Konfiguration av nätverk, hur man använder Ubuntu som server, och håller sin dator säker
Användarvisningsbild
stefan57
Inlägg: 70
Blev medlem: 02 apr 2008, 16:10
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS

Problem med 301 redirect, behöver hjälp

Inlägg av stefan57 »

Jag har precis bytt script som kör min sajt, och behöver göra 301 redirect ...
Har hållit på hela dan, kollar massor av forum, men av alla de exemplem jag sett så har inget hjälpt mig :-(

Detta är två gamla urler, som redan är indexerad i tusentals på google:

Kod: Markera allt

Denna typen är det som är mest indexerad
http://www.mysite.com/products1.php?id=29964&t=Personal_Knowbase

och några såna här finns oxo indexerade
http://www.mysite.com/products1.php?id=29964&t=Personal_Knowbase&next=1
som jag måste 301 redirect till

Kod: Markera allt

http://www.mysite.com/list.php?string=Personal+Knowbase&match=Any&search=Title
FYI 1: Filen products1.php finns inte längre på servern, tillhörde de gamla scripten
FYI 2: Det är variable t (med understrukningar) som ska användas i nya variablen string (fast nu med bindestreck)

Här är ett av mina senaste "misslyckade" försök:

Kod: Markera allt

Options +Indexes
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteRule ^products1.php?id=([^/]+)&t=([^/]+)$	list.php?string=$2&match=Any&Search=Title [R=301,L]
Hoppas nån av er kan hjälpa mig, för nu får google 404 error på när roboten försöker kolla mina gamla url'er :-(

Viktigt är att url raden i webbläsaren oxo ändras till nya url en ...

Om jag får detta att funka (och det hoppas jag), hur länge ska man ha en 301 redirect i htaccess filen ?
Några veckor, eller handlar det om månader för att vara säker ?

/Stefan
andol
Inlägg: 3093
Blev medlem: 31 dec 2007, 00:19
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur

Re: Problem med 301 redirect, behöver hjälp

Inlägg av andol »

Jo, här har vi lite att jobba på :)

Till en början med så matchar RewriteRule endast på själva filnamnsdelen. För att få med query-delen (typ ?id=29964&t=Personal_Knowbase) får man använda sig utav RewriteCond.

Frågetecknet ? är ett specialtecken som måste escapas till \? istället. Annars villkorar det bara det tidigare angivna tecknet. Fast med tanke på vad jag skrev i förra paragrafen är det inte ens säkert att du komma behöva använda frågetecknet.

För att göra en riktigt redirekt, och inte bara en tyst omskrivning, så behöver resultatet vara en fullständiga url. Istället för att peka om mot list.php så ska du alltså peka om mot http://webbplats/list.php.

Teckenklassen [^/] känns nästan lite väl öppen, även om det är möjligt att du kommer undan med det i praktiken. Jag skulle åtminstone lägga till så att även & exkluderas. Resultat blir alltså då [^/&].

Varför fångar du två matchningar, när du bara använder den ena?
Användarvisningsbild
stefan57
Inlägg: 70
Blev medlem: 02 apr 2008, 16:10
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS

Re: Problem med 301 redirect, behöver hjälp

Inlägg av stefan57 »

Hej Andol, och tack för att du tog dig tid att fundera lite :)
Nu är jag inte alls van att vara och rota i htaccess filen med redirects, därav att jag inte kommit så långt sen jag startade med detta igår.

Varför jag fångar två matchningar ... Enkelt ... Det exemplet jag försökte följa hade det ... eahhh

Hur ser detta ut, tycker du? Har inte provat det ännu ...

Kod: Markera allt

RewriteCond ^products1.php\?id=([^/&]+)&t=([^/&]+)$   http://www.mysite.com/list.php?string=$2&match=Any&Search=Title [R=301,L]
Om jag nu bara ska fånga andra matchningen, vad gör jag med id= ?
Det kan ju vara vilket id nr som helst där, så jag kan ju inte skriva nåt ... eller ?

Confused ...

Och sen ... Har du nån ide hur man fixar så _ blir utbytt till + i $2 (eller $1 om jag kan ta bort första matchningen :-)
andol
Inlägg: 3093
Blev medlem: 31 dec 2007, 00:19
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur

Re: Problem med 301 redirect, behöver hjälp

Inlägg av andol »

Innan du ställer en följdfråga kan du ju åtminstone testa om din nytänkta lösning fungerar?

Förövrigt tror jag att det kan vara en bra idé att ögna igenom Apaches URL Rewriting Guide lite lätt. Då det är en rätt komplicerad omskrivningsoperation som ska utföras skadar det inte om du i alla fall har lite grunder klara för dig.
Användarvisningsbild
stefan57
Inlägg: 70
Blev medlem: 02 apr 2008, 16:10
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS

Re: Problem med 301 redirect, behöver hjälp

Inlägg av stefan57 »

Nu har jag testat och fick: Internal Server Error ... hmm
Jag som tyckte det såg så bra ut, eahh

Ska bums över till guiden du visade mig och se om jag lär mig nåt :-)
Skriv svar

Återgå till "Nätverk, säkerhet och servrar"