Aleksandra

Aleksandra Brzozowska front-end developer

Temat: Problem z przekierowaniem (mod_rewrite)

Mam problem z przekierowaniem sklepu na nowy adres.

Sytuacja od początku jest złożona bo zainstalowana wersja sklepu to v1.2, a obecna aktualna powinna być v5. Pomijając fakt, że trzeba go aktualizować 1 do 2, 2 do 3 i tak dalej... Przy v3 zmienia się struktura wyświetlania linków. Odnośniki w nowej wersji sklepu różnią się od tych ze starej wersji.

Pierwsze pytanie: Czy muszę przekierowywać każdą podstronę? Czy da się to zrobić jakoś ogólnikowo?

Pojawiające się problemy sklep nie znajduje się w katalogu głównym, tylko w folderze (http://jakasdomena.pl/sklep/) i oczywiście forma linków to GET. Nowe linki powstale w wyższych wersjach sklepu też maja tą formę...

Dodatkowo klient najchętniej chciał by przenieść sklep na nową domenę.

Czyli jak przekierować sklep, z powiedzmy linku:

http://jakasdomena.pl/sklep/?p=productsList&iCategory=113
na:
http://nowadomena.pl/?jakies-tam-kategorie,113

:(Aleksandra Brzozowska edytował(a) ten post dnia 24.04.12 o godzinie 14:04
12.04.2012, 14:59
Bartosz

Bartosz M. Właściciel,
Gzoom.pl

Temat: Problem z przekierowaniem (mod_rewrite)

Jeżeli z domeny na domenę to musowo 301. Plus jeżeli masz w adresach jakieś powtarzające się ciągi znaków to wyrażenia regularne -> żeby nie przekierowywać tego na piechotę.

Trochę info znajdziesz tutaj:
http://magazynt3.pl/htaccess-bez-tajemnic-sztuczki-z-s...
14.04.2012, 10:54
Kamil

Kamil Brenk kamilbrenk.pl

Temat: Problem z przekierowaniem (mod_rewrite)

1) mod_rewrite rzadko kiedy jest potrzebny do przekierowań, od tego są inne regułki (Redirect, RedirectMatch).

2) nie widzę powiązania między:

"http://jakasdomena.pl/sklep/?p=productsList&iCategory=113
na:
http://nowadomena.pl/?jakies-tam-kategorie,113"

żeby "jakies-tam-kategorie" pokazały się w adresie to nie wystarczy zwykłe przekierowanie na poziomie serwera - trzeba pobrać odpowiednie dane, a dopiero potem wykonać przekierowanie (czyli przekierowanie przerzucić na język serwerowy)
17.04.2012, 05:48
Aleksandra

Aleksandra Brzozowska front-end developer

Temat: Problem z przekierowaniem (mod_rewrite)

Nadal nie wiem jak sobie z tym poradzić :(

Może ktoś ma pomysł na rozwiązanie jak zrobić przekierowanie z tej strony:
http://lasery.3h.pl/sklep/?p=productsList&iCategory=109
na tą:
http://www.lasery.biz/index.php/produkty/lasery-3d.html

Może jakiś przykład? :( ponieważ analogicznie potem muszę przekierować inne podstrony. Cały ten "sklep" muszę rozbić na 2 różne strony:
lasery.biz i prasy.pro - poszczególne produkty i kategorie przenosić tu i tam...

Spędza mi to już sen z powiek ;(

jedyne co działa to
<script type="text/javascript">
setTimeout(function(){
window.location.href = "http://www.lasery.biz/index.php/produkty/lasery-3d.html";
},
2000);
</script>

jednej o ile jest mi wiadomo nie ma to nic wspólnego z SEO, tzn roboty nie biorą pod uwagę takiego przekierowania :(Aleksandra Brzozowska edytował(a) ten post dnia 24.04.12 o godzinie 14:05
24.04.2012, 13:23
Janusz

Janusz Skudrzyk Członek zarządu,
weblabs.pl

Temat: Problem z przekierowaniem (mod_rewrite)

W katalogu ze starym sklepem należy zrobić własny index.php (albo wpiąć się na samym początku istniejącego, po linijkach łączenia się z bazą). Następnie robimy rozróżnienie na wartość parametru p:
- jeśli productList to:
a) $link1 = 'produkty'
b) $nazwa = pobierz_nazwe_kategorii_z_bazy( $id )

- jeśli product (zgaduję) to:
a) $link1 = 'produkt'
b) $nazwa pobierz_nazwe_produktu_z_bazy( $id )

- itd.

na koniec tego skryptu:

header ('HTTP/1.1 301 Moved Permanently');
header ('Location: http://www.lasery.biz/index.php/'.$link1.'/'.$nazwa );
exit();


Jeśli linki wychodzą bardziej pokręcone, to niestety trzeba będzie poskładać każdy osobno.
24.04.2012, 19:40
Sebastian

Sebastian Zaborowski programista /
analityk / webmaster
/ freelancer

Temat: Problem z przekierowaniem (mod_rewrite)

Janusz Skudrzyk:
Jeśli linki wychodzą bardziej pokręcone, to niestety trzeba będzie poskładać każdy osobno.

A co tu składać osobno? Skoro to jest w ramach jednego systemu ecommerce (nie mylić z produktem o podobnej nazwie, mam na myśli ogólnie systemy sklepowe) należy mieć kopię bazy i plików z dotychczasowym sklepem. A później droga Aleksandro:

1. W nowym miejscu na nowej bazie przeprowadzasz aktualizację do v5 - niestety tak jak opisałaś małymi kroczkami, po kolei: 1->2->3->4->5.
2. Wyciągasz z nowego systemu sposób generowania linków. Zapewne jest jakaś klasa, metoda lub zwykła funkcja w tym celu.
3. Dokonujesz rozkładu tej funkcji na czynniki pierwsze, żeby móc ją powiązać ze starą bazą danych, a przynajmniej z elementami jakie są potrzebne: nazwa produktu, id, nazwa kategorii, id kategorii itd.
4. Na starej domenie, w starym miejscu, w starym sklepie używasz tej funkcji do generowania nowych linków.
5. W momencie wejścia na stary link http://lasery.3h.pl/sklep/?p=productsList&iCategory=109 skrypt ma wszystkie potrzebne parametry, żeby wygenerować nowy link http://www.lasery.biz/index.php/produkty/lasery-3d.html. Wystarczy dać tam przekierowanie 301 na ten nowy i wygenerowany link na nową domenę.
6. Cała magia odbywa się po stronie starego sklepu, w starym miejscu, który przekieruje cały dotychczasowy i zindeksowany ruch w nowe miejsce, w dodatku właściwe.Sebastian Zaborowski edytował(a) ten post dnia 24.04.12 o godzinie 23:22
24.04.2012, 21:45

Następna dyskusja:

Problem z mod rewrite




Zobacz dyskusje w grupie Programiści WWW

Aktualne tematy

Zobacz o czym się teraz dyskutuje

Problemy i porady

Znajdź odpowiedzi na swoje pytania

Wyślij zaproszenie do