Skocz do zawartości

Poprawa przekierowań htaccess


makensis

Rekomendowane odpowiedzi

Mam problem, zależy mi na takim przekierowaniu starych adresów na nowy:

/topic/1107443326253-polskie-znaki/zapytania-cd => /polskie-znaki-t1107443326253/zapytania-cd

Stworzyłem regułę, ale nie działa do końca, bo zapytania-cd ignoruje nie dodając jego na końcu, co napisałem źle:

RewriteRule ^topic/([0-9]*)-(.*)/(.*) $2-t$1/$3 [R=301,L]

Odnośnik do komentarza
Udostępnij na innych stronach

I co działa?

Mam podobny problem, ale z przepisaniem w taki sposób:

www.strona.pl/Products/22/nazwa-produktu

na

www.strona.pl/nazwa-produktu

użyłem tego co kolega Irek zaproponowął w takiej postaci:

RewriteRule ^Products/([0-9]*)-([^/]*)/(.*) $3 [R=301,L]

ale nie działa, chyba, że coś w tym poknociłem - początkujący jestem przepraszam.

Odnośnik do komentarza
Udostępnij na innych stronach

Bo musisz zrobić jeszcze tłumaczenie! Popatrz na taką strukturę:

RewriteRule ^strona/([0-9]+)/(.*)/?$ index.php?page=pokaz-oferte&id=$1&title=$2 [L]

Pierwsza część: link, np. ^strona/22/to-jest-dowolny-string

Tłumacozna na: index.php?page=strona&id=$1&title=$2, gdzie $1 i $2 to dynamiczne dane z wyrażeń regularnych, w kolejności tak jak je wymieniałeś, idąc dalej za przkyładem praktycznym, link przepisywany w ten sposób prowadzi do: index.php?page=strona&id=22&title=to-jest-dowolny-string

Auto do ślubu - Oferta wynajmu samochodu ślubnego wraz z kierowcą, Bielsko-Biała.

Odnośnik do komentarza
Udostępnij na innych stronach

Dobra chyba w ogóle źle zacząłem z tym walczyć i pewnie tego co chce zrobić nie da się zrobić w htaccess...

Próbowałem zrobić friendly URL przez htaccess bo w CMS MS po kilku godzinach walki wysiadłem (URL generowane automatycznie)

Rozumiem, że to:

RewriteRule ^Products/([^/]+)/([^/]+) $2 [R=301,L]

po prostu przekierowuje z adresu A na adres B.

Chyba coś pomieszałem :(

Odnośnik do komentarza
Udostępnij na innych stronach

Nie zadziała, bo stawiam liter wódki że produkt ma się wyświetlać przede wszystkim po ID. Dlatego trzeba je wciąż zachowywać, ale jak cię pocieszy przepisanie z www.strona.pl/Products/22/nazwa-produktu na www.strona.pl/22/nazwa-produktu - co jest jak najbardziej w porządku jeśli chodzi o SEO, to powinno to załatwić:

RewriteRule ^([0-9]+)/(.*)/?$ Products/$1/$2 [L]

Ale uwaga! Products wzięło się tu nie bez powodu, teraz podając url twojej witryny, łamany przez dowolną liczbę i ciąg znaków alfanumeryczny będzie przekierowanie na stronę produktu o ID przekazanym w URLu, co oczywiście może przełożyć się na błędy na innych stronach. Jeśli chcesz ich uniknąć najlepiej nie tykaj .htaccess, albo zamień jedynie słowo "Products" na "produkt" (lub towar etc.):

RewriteRule ^produkt/([0-9]+)/(.*)/?$ Products/$1/$2 [L]

Dostaniesz w ten sposób URL "www.strona.pl/produkt/22/nazwa". Ciągle zadaje sobie pytanie - po co te zmiany?

Auto do ślubu - Oferta wynajmu samochodu ślubnego wraz z kierowcą, Bielsko-Biała.

Odnośnik do komentarza
Udostępnij na innych stronach

Chciałem to zmienić ponieważ na starej stronie linki do produktów były w takiej formie:

www.strona.pl/nazwa-produktu

Rozumiem, że link w postaci www.strona.pl/products/22/nazwa-produktu pod kątem SEO jest właściwa?

Najwyżej zrobie przekierowanie 301 ze starych url produktów na nowy.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności