htaccess - przekierowania z użyciem regex do regex? |
htaccess - przekierowania z użyciem regex do regex? |
19.03.2019, 17:59:14
Post
#1
|
|
Grupa: Zarejestrowani Postów: 321 Pomógł: 3 Dołączył: 10.07.2016 Skąd: UK-raine Ostrzeżenie: (0%) |
Panowie/Panie,
tak wiem, wciaż jakieś idiotyczne pytania zadaję ale ... Ma problem z którym nie bardzo potrafię sobie poradzić, mianowicie z jakiegoś powodu moje Magento generuje co jakiś czas nowe urle więc dodaję sobie co chwilę kolejna listę żeby działało bez wywalania 404. Jest to trochę irytujace i pomyślałem czy można by w jakiś sposób zmusić htaccess do działania. Nie jest to problem jeśli np zmienia się jakiś element url'a np inkrementuje liczbę dodawana na końcu url'a. RedirectMatch daje rade ale kiedy url nie daje się np przekierować bo /kategoria/strona-10/ nie może być przekierowana do /strona.html ponieważ takowa nie istnieje, istnieje za to /strona-10.html. Niestety każdorazowa zmiana url'a to kolejny redirect 301 /kategoria/strona-numer/ do /strona-numer.html Zapytacie o co pytam .... czego chcę .... czy istnieje jakaś możliwość ustawienia przekierowania w taki sposób, że zmiana /kategoria-numer/ będzie zawsze równało się /strona-numer.html ? Bo przecież nie mogę RedirectMatch 301 /kategoria/strona-(\d{3})/ /strona-(\d{3}).html bo wywalę stronę albo dostanę 404. Da się to jakoś obejść ? |
|
|
19.03.2019, 18:03:19
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 767 Pomógł: 1824 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Kod RewriteCond %{REQUEST_URI} ^/kategoria/strona-(\d{3})/
RewriteRule ^.*$ http://domena.pl/strona-%1.html [R=301,L] -------------------- |
|
|
20.03.2019, 11:04:05
Post
#3
|
|
Grupa: Zarejestrowani Postów: 321 Pomógł: 3 Dołączył: 10.07.2016 Skąd: UK-raine Ostrzeżenie: (0%) |
aaaaaaah trublue wielgachne dzięki, nie ogarnłdane@edpa.cmo.uk
Aaaaaaah trueblue wielgachne dzięki, nie ogarnałem jeszcze tego zagadnienia. Już będę wiedział na przyszłość jak się do tego zabrać. Dziękuję Edyta: Nie wiem co źle zrobiłem ... miałem wrażenie, że działa ale okazało się, że nie ... wpisałem oczywiście opatrzone tagami <IfModule mod_rewrite.c> ... dziś rano, okazało się, url znowu się zmienił ale już przekierowanie nie zadziałało. tak działa: Redirect 301 /browse/sale-51/ /sale-51.html?dir=asc&order=position a tak nie: <IfModule mod_rewrite.c> RewriteCond %{REQUEST_URI} ^/browse/sale-(\d{3})/ RewriteRule ^.*$ https://mojadomena.pl/sale-%1.html?dir=asc&...;order=position [R=301,L] </IfModule> Why ? Ten post edytował phpamator 20.03.2019, 11:09:49 |
|
|
21.03.2019, 11:11:55
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 767 Pomógł: 1824 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
A jakich wartości dotyczy wzorzec \d{3}?
-------------------- |
|
|
28.03.2019, 12:22:26
Post
#5
|
|
Grupa: Zarejestrowani Postów: 321 Pomógł: 3 Dołączył: 10.07.2016 Skąd: UK-raine Ostrzeżenie: (0%) |
Ooo hej trueblue,
Przepraszam, nie zaglądałęm od kilku dni. Wartości jakie się tam pojawiają to jak narazie dwu cyfrowe liczby a dlaczego ? Czyżby błąd polegał na \d{3} zamiast \d{2} ? A co jeśli ilość wygenerowanych url'i przekroczy 99 ? wtedy zmienić ma \d{3} ? A nie można zdefiniować zakresu on 1 do 1000 ? Czyli powinienem poprostu zmienić \d{1,4} i będzie aż do 9999 ..... ? ale wtopa Ten post edytował phpamator 28.03.2019, 12:27:20 |
|
|
Wersja Lo-Fi | Aktualny czas: 21.06.2024 - 14:32 |