Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przekierowania w htaccess - zaawansowane
Forum PHP.pl > Forum > Serwery WWW
adek-
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ę.

trueblue
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.
Tomplus
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.
adek-
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 ;/
trueblue
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?
adek-
@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 ;/
trueblue
Kod
RewriteCond %{HTTP_HOST} ^www.sprzedaz.domena.pl$
RewriteCond %{REQUEST_URI} ^/punkt/index/222$
RewriteRule .* https://www.domena.pl/punkty/punkt/warszawa/punkt222
adek-
@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(isset($this->one_pos[0]['name'])) {
  2. header('HTTP/1.1 301 Moved Permanently');
  3. header("Location: htps://www.domena.pl/sprzedaz/punkt/".$this->one_pos[0]['cityUrl']."/".$this->one_pos[0]['posUrl']."");
  4. } else { 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.
trueblue
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
adek-
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ę!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.