Avatar billede multicoder Nybegynder
21. december 2010 - 15:33 Der er 4 kommentarer

mod_rewirte gammel shop links til ny shop

Hej Jeg har skiftet webshop og vil i den forbindelse gerne have mine gamle URLer til at virke på den ny shop.

Jeg har forsøgt med:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !-F
RewriteRule ^product\.asp?product=([0-9]+)$ /?id=35&recordid=$1 [R=302,L]

Gammel adresse:
www.domæne.net/product.asp?product=1681

Ny adresse:
www.domæne.dk/?id=35&recordid=1681

Det er som om at der er et problem med "?".

Håber i kan hjælpe
Avatar billede jakobdo Ekspert
21. december 2010 - 21:59 #1
I en regexp betyder ? at det foran kan være 0 eller 1.
Altså:

abc? vil matche:

ab og abc

Så prøve at escape dit ? med \?
Avatar billede multicoder Nybegynder
22. december 2010 - 13:35 #2
Hej

Tak for dit svar.

Nu har jeg ændret den til:

RewriteRule ^product\.asp\?product=([0-9]+)$ /?id=35&recordid=$1 [R=302,L]

Men det virker desværre stadig ikke.

Jeg har forsøgt med RewriteRule ^product\.aspproduct=([0-9]+)$ /?id=35&recordid=$1 [R=302,L]

skriver jeg www.domæne.net/product.aspproduct=1681 i en browser, virker det fint. Så der er ikke så meget tvivl om at det er "?" der gir problemer.
Avatar billede jakobdo Ekspert
07. januar 2011 - 12:10 #3
Kunne du måske ikke bruge:

RewriteEngine On
RewriteBase /
RewriteRule ^product.asp(.*)$ ?$1 [QSA]

På den måde får du alt fra product smidt videre til din "index" side.
Og der kunne du så tage hånd om variablerne ?
Avatar billede multicoder Nybegynder
11. januar 2011 - 13:47 #4
Hej

Jeg har fundet en anden løsning som virker nu.

RewriteCond %{QUERY_STRING} ^product=([0-9]+)$
RewriteRule ^product\.asp /?id=35&recordid=%1 [R=301,L]
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester