[inne][.htaccess] Reguła RewriteRule - zmiana adresów stron |
[inne][.htaccess] Reguła RewriteRule - zmiana adresów stron |
24.10.2019, 08:04:38
Post
#1
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 24.10.2019 Ostrzeżenie: (0%) |
Próbuję zmienić starą adresację
domena.pl/produkt/nazwa-towaru-12345 gdzie nazwa-towaru jest za każdym razem inną nazwą, liczby po myślniku są nieistotne dla nowej adresacji i też zmienne. na nową domena.pl/nazwa-towaru.html Musi zniknąć ciąg losowych znaków liczbowych na końcu oraz produkt . Dopisać należy .html Stworzyłem dla pliku .htaccess reguły iżadna nie działa : RewriteRule ^([^-]+).html$ produkt/$1-$2 [L] RewriteRule ^([^-]+)\.html$ produkt/$1-$2 [L] RewriteRule ^[a-z0-9\-]\.html$ produkt/$1- Macie pomysł gdzie jest błąd. |
|
|
24.10.2019, 08:34:13
Post
#2
|
|
Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) |
Ale co konkretnie nie dziala? Czy w przypadku starej adresacji liczby po myslniku to nie byl identyfikator towaru, po ktorym aplikacja szukala towaru w bazie danych?
|
|
|
24.10.2019, 08:42:31
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
A zmieniłeś sposób generacji tych linków w kodzie strony, czy chcesz, aby .htaccess w magiczny sposób je pozmieniał?
-------------------- |
|
|
24.10.2019, 08:54:58
Post
#4
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 24.10.2019 Ostrzeżenie: (0%) |
Zmieniłem oprogramowanie strony.
Cytat Ale co konkretnie nie dziala? Czy w przypadku starej adresacji liczby po myslniku to nie byl identyfikator towaru, po ktorym aplikacja szukala towaru w bazie danych? domena.pl/produkt/nazwa-towaru-12345 gdzie nazwa-towaru jest za każdym razem inną nazwą, liczby po myślniku są nieistotne dla nowej adresacji i też zmienne. Cytat A zmieniłeś sposób generacji tych linków w kodzie strony, czy chcesz, aby .htaccess w magiczny sposób je pozmieniał? Jest nowy skrypt, który pobiera z tej samej bazy SQL towary i musi się zgadzać nazwa-towaru dodatkowo .html w nowej adresacji. dodatkowo mam inną regułę, która działa na innych stronach innym hostingu a tu te mi nie działa: Kod Options +FollowSymLinks +ExecCGI
RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteEngine On RewriteRule ^https://www.DOMENA.com.pl/product/nazwa-towaru-1l-123456$ https://www.DOMENA.com.pl/nazwa-towaru-1l.html Ten post edytował Mazurek 24.10.2019, 08:58:26 |
|
|
24.10.2019, 09:10:37
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Kod RewriteCond %{REQUEST_URI} ^/produkt/(.*?)-(\d+)
RewriteRule .* /produkt/%1.html [R=301,L] -------------------- |
|
|
24.10.2019, 09:23:14
Post
#6
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 24.10.2019 Ostrzeżenie: (0%) |
TRUEBLUE jest progres.
Kod RewriteCond %{REQUEST_URI} ^/produkt/(.*?)-(\d+) RewriteRule .* /%1.html [R=301,L] poprawiłem i zgubiłem słowa produkt Działa dla części adresów. W adresie starej nazwy mam np nazwa-towaru-piwo-500ml i skrypt gubi wszystko co jest za liczbą 500 w efekcie zamiast nazwa-towaru-Pwo-500ml otrzymuję tylko nazwa-towaru-piwo brakuje jakiejś reguły uwzględniającej liczby w adresie Ten post edytował Mazurek 24.10.2019, 09:37:03 |
|
|
24.10.2019, 09:33:28
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Za ostatnim myślnikiem miały być same cyfry. Jaką ostatecznie ma postać stary adres?
-------------------- |
|
|
24.10.2019, 09:39:59
Post
#8
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 24.10.2019 Ostrzeżenie: (0%) |
adres ma formy:
nazwa-towaru-123456 losowe cyfry lub najczęściej nazwa-towaru-liczba-123456 przykładowo piwo-marki-zywiec-500ml-bezalholowoe-123456 docelowo musi być piwo-marki-zywiec-500ml-bezalholowoe.html a otrzymuję piwo-marki-zywiec.html bez -500ml-bezalholowoe czyli skrypt musi ucinać ostatnie liczby |
|
|
24.10.2019, 09:45:22
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Czyli ostatecznie ten przykładowy adres nie kończy się na 500ml.
Kod RewriteCond %{REQUEST_URI} ^/produkt/(.*?)-(\d+)$
RewriteRule .* /%1.html [R=301,L] -------------------- |
|
|
24.10.2019, 09:56:51
Post
#10
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 24.10.2019 Ostrzeżenie: (0%) |
Dziękuję za pomoc w regułach RewriteRule. Mam jednak problem z częścią adresów gdzie w nazwie jest liczba. Ostatecznie ten adres kończy się na myślnik oraz losowe liczby -123456
Ten post edytował Mazurek 24.10.2019, 10:58:06 |
|
|
24.10.2019, 11:04:55
Post
#11
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
To podaj adres, dla której ostatnia podana przeze mnie reguła nie działa.
-------------------- |
|
|
24.10.2019, 11:17:27
Post
#12
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 24.10.2019 Ostrzeżenie: (0%) |
Sprawdzam, dodałeś $ na końcu i testuje, jakby działa
Ten post edytował Mazurek 24.10.2019, 11:22:08 |
|
|
24.10.2019, 11:20:53
Post
#13
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Ostatnia reguła, którą podałem działa poprawnie z takim adresem.
-------------------- |
|
|
24.10.2019, 11:27:00
Post
#14
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 24.10.2019 Ostrzeżenie: (0%) |
Przegapiłem poprawkę. Działa poprawnie. DZIĘKI x 2 poszło.
Mam jeszcze 1 problem. Na podstawie Twojego kodu podstawiłem sobie do zmiany nazw kategorii: Kod RewriteCond %{REQUEST_URI} ^/category/(.*?)-(\d+) RewriteRule .* /category/%1 [R=301,L] działa poprawnie i zamienia poprawnie category/piwo-123456 na category/piwo Problem w tym że Google zindeksował mój stary serwis w formie : category/piwo-123456 LUB category/piwo-123456? czasami jest znak zapytania na końcu. I teraz ten znak zapytania się pojawia w nowym adresie . Jak go zgubić? |
|
|
24.10.2019, 11:34:20
Post
#15
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
-------------------- |
|
|
24.10.2019, 12:17:49
Post
#16
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 24.10.2019 Ostrzeżenie: (0%) |
Mam dodać linię:
RewriteRule ^(.*)$ %{REQUEST_URI}? lub RewriteRule ^(.*)$ %{REQUEST_URI} [QSD] obie linie kodu nie zmienia nic Kod RewriteCond %{REQUEST_URI} ^/category/(.*?)-(\d+) RewriteRule .* /category/%1 [R=301,L] RewriteRule ^(.*)$ %{REQUEST_URI}? Tutaj miał ktoś podobny problem Temat: htaccess slash na koncu linka ale jak dodałem ?$ do kodu: Kod RewriteCond %{REQUEST_URI} ^/category/(.*?)-(\d+) RewriteRule .* /category/%1?$ [R=301,L] to nie pomogło tylko w adresie wyświetla dodatkowo ?$ Ten post edytował Mazurek 24.10.2019, 13:35:13 |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 15:07 |