Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Serwery WWW _ Przekierowania w htaccess - zaawansowane

Napisany przez: adek- 13.03.2019, 13:48:06

Witam szanowne grono,

pomóżcie proszę znaleźć odpowiednie hasło dla googla, albo stronę, bądź coś podpowiedzieć, gdzie będą wytłumaczone zaawansowane przekierowania w httaccess z wieloma parametrami, mianowicie chodzi mi o przekierowania wielu sprzedawanych przedmiotów z subdomeny na ich odpowiedniki w domenie głównej... i wszystko byłoby ok, gdyby nie to, że nie jest to proste przekierowanie domeny na domenę, a całych urli na inne urle wielopoziomowe. Mianowicie chcę przekierować linki takiego typu (około 40 linków) z subdomeny
https://www.sprzedaz.domena.pl/punkt/index/222 (222 to id punktu), na takie coś w domenie głównej i już z przyjaznymi url'ami
https://www.domena.pl/punkty/punkt/miastoX/nazwa_punktuX
wszystko od strony technicznej strony mam za sobą, niestety nie potrafię znaleźć/zrobić takich przekierowań, oczywiście 301, aby odnośniki nie straciły na wartości w wyszukiwarkach.

Z góry dziękuję.


Napisany przez: trueblue 13.03.2019, 14:31:57

W .htaccess tego nie zrobisz, chyba, że chcesz wpisywać 40 odrębnych przekierowań dla każdego URL z id punktu jego odpowiednik z nazwą miasta i nazwą punktu.
Łatwiej byłoby zrobić to w PHP, w pętli.

Napisany przez: Tomplus 13.03.2019, 15:33:26

na nginx dałbyś radę coś takiego zrobić, więc jak możesz przełączyć Apache na Nginx to możesz w tym spróbować skonstruować odpowiednie zapytanie.

Napisany przez: adek- 13.03.2019, 16:41:39

Cytat(trueblue @ 13.03.2019, 14:31:57 ) *
W .htaccess tego nie zrobisz, chyba, że chcesz wpisywać 40 odrębnych przekierowań dla każdego URL z id punktu jego odpowiednik z nazwą miasta i nazwą punktu.
Łatwiej byłoby zrobić to w PHP, w pętli.

@trueblue właśnie o stałych przekierowaniach myślę w .htaccess, bo są to stałe punkty. Teraz mam zrobione tak, że do każdego z tych punktów posiadam zakupioną domenę, np www.punkt-kraków.pl i wszystkie przekierowania zakupionych domen mam zrobione na główną stronę subdomeny www.sprzedaz.domena.pl , a w .htaccess przekierowania do każdego punktu indywidualnie.
  1. RewriteCond %{HTTP_HOST} ^(www.)?punkt-kraków.pl$
  2. RewriteRule ^(/)?$ htps://www.sprzedaz.domena.pl/punkt/index/222 [L]

wiem, na okrętkę bardzo i zawsze trzeba pamiętać o wpisach, ale są to stałe punkty, więc wcale by mi nie przeszkadzało, aby to były "sztywne" przekierowania.

PS @Tomplus nginx nie wchodzi w grę, ponieważ serwer nie jest mój ;/

Napisany przez: trueblue 13.03.2019, 17:15:56

To na jaki adres chcesz przekierować konkretną subdomenę dla punktu, na https://www.domena.pl/punkty/punkt/miastoX/nazwa_punktuX czy na https://www.punkt-kraków.pl?

Napisany przez: adek- 13.03.2019, 19:48:13

@trueblue chcę zrobić tak jak pisałem na początku w pierwszym poście, czyli
https://www.sprzedaz.domena.pl/punkt/index/222 zamienić na https://www.domena.pl/punkty/punkt/miastoX/nazwa_punktuX, bo to jest dla mnie problem...
a te odnośniki z domen poziomu pierwszego, o które teraz pytasz (np. kraków), to pokazałem jak mam na chwilę obecną zrobione na działającej stronie i jak sobie zmienię

  1. RewriteCond %{HTTP_HOST} ^(www.)?punkt-kraków.pl$
  2. RewriteRule ^(/)?$ htps://www.sprzedaz.domena.pl/punkt/index/222 [L] na htps://www.domena.pl/punkty/punkt/miastoX/nazwa_punktuX

to mi to ładnie działa, ale wyszukiwarki po wpisaniu którejkolwiek z wykupionych domen (typu krakow), zapamiętały adresy starych stron z subdomeny (te z adresami id) i tam prowadzą kliknięcia... stąd na subdomenie muszę zrobić przekierowania o które pytałem, tak, żeby robił się autoredirect z zapamiętanych starych stron na nowe, a osobną drogą już porobić domeny typu kraków na nowe adresy. Jak zrobi się te przekierowania na 301, to wyszukiwarki z tego co wiem, po jakimś czasie zamienią te stare odnośniki na nowe... oby, a jeśli nie, to i tak zachowam ich moc przekierowując na nowe strony, a te nowe będą się powoli pozycjonować! smile.gif

Ogólnie wiem, zamota przez błędy założeń 7 lat temu z subdomeną... wszystko byłoby łatwiejsze, gdyby to było w jednej domenie cały czas, bo wystarczyłoby zamienić w tej samej domenie zmienne id na przyjazne url ;/

Napisany przez: trueblue 13.03.2019, 20:03:01

Kod
RewriteCond %{HTTP_HOST} ^www.sprzedaz.domena.pl$
RewriteCond %{REQUEST_URI} ^/punkt/index/222$
RewriteRule .* https://www.domena.pl/punkty/punkt/warszawa/punkt222

Napisany przez: adek- 15.03.2019, 11:32:55

@trueblue, u mnie niestety ten chwyt nie zadziałał, być może nieco inne ustawienie serwera, ale dziękuję Ci za chęci niesienia pomocy, może komuś się ten wpis kiedyś przyda (klikam solved)... A ja w ostateczności, nie chciałem wynajdywać koła od nowa i zrobiłem to za pomocą starego dobrego php, bo to chociaż ogarniam w porównaniu do .htaccess wink.gif

  1. <?php if(http://www.php.net/isset($this->one_pos[0]['name'])) {
  2. http://www.php.net/header('HTTP/1.1 301 Moved Permanently');
  3. http://www.php.net/header("Location: htps://www.domena.pl/sprzedaz/punkt/".$this->one_pos[0]['cityUrl']."/".$this->one_pos[0]['posUrl']."");
  4. } else { http://www.php.net/echo 'nothin to do :)'; } ?>

oczywiście dorobiłem sobie jeszcze kilka ifów sprawdzających url strony i wprzypadku zakładki kontakt przenosi na kontakt w nowej stronie itd... jak zobaczę, że "gógl" naumiał się już linków, to starą stronę skasuję.
Serdecznie dziękuję wszystkim za zainteresowanie.

Napisany przez: trueblue 15.03.2019, 11:46:37

Następnym razem podaj na jaką domenę chcesz przekierować. Podałeś trzy różne wersje: www.domena.pl/punkty/punkt/miastoX/nazwa_punktuX, www.punkt-kraków.pl, www.domena.pl/sprzedaz/punkt/miastoX/nazwa_punktuX

Napisany przez: adek- 15.03.2019, 12:58:10

przepraszam, ale tak jak mówiłem, parę ładnych lat temu zrobiłem błędy założeń i porobiłem sporo domen, sporo przekierowań na sztywno itd., więc każde z tych przekierowań które podałem jest właściwe i faktycznie łatwo się w tym pogubić, dlatego od tego uciekłem.. oczywiście Twój kod nie wkleiłem bezmyślnie, ale dostosowałem do odpowiednich urli i w zasadzie dzięki Tobie przyszła mi do głowy myśl z przekierowaniem w PHP, więc jeszcze raz dziękuję!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)