Skocz do zawartości

.htaccess przekierowanie 301 adres php z id na plik .html


Hejkum

Rekomendowane odpowiedzi

W jaki sposób zrobić przekierowanie zwykłej klasycznej, niedynamicznej strony opartej na plikach html z linków php z id na html.
Próbowałem już na wiele sposobów, w ostateczności albo zostawia element ID_M=8 w adresie albo ucina mi rozszerzenie .html

Muszę zrobić kilka tego typu przekierowań dla starej strony bez zarządzania treścią.


 

http://adres.pl/miasta.php?ID_M=8
http://adres.pl/kontakt.html

 

Odnośnik do komentarza
Udostępnij na innych stronach

Cześć @Hejkum

Jeżeli tych stron masz ledwo kilka, to możesz zrobić proste 301

Redirect 301 /miasta.php?ID_M=8 http://adres.pl/miasta
Redirect 301 /kontakt.html http://adres.pl/kontakt/

 

Ogólnie ciężko zrozumieć jaki chcesz uzyskać efekt końcowy.

  1. przekierowanie na inny adres, tj. stary -> nowy
    czy
  2. przekierowanie na ten sam adres z końcówką html

Napisz proszę bez kombinacji przykład nowego adresu, bo stary już mamy

http://adres.pl/miasta.php?ID_M=8

 

Pozdrawiam

Pomogłem? Podziękuj punktem reputacji ->

dzięki    
Odnośnik do komentarza
Udostępnij na innych stronach

Cześć. 

Może faktycznie trochę zawile to opisałem.
Tak chodzi dosłownie o około 7 przekierowań.

Chodzi o prosta formę czyli: 

redirect 301 /miasta.php?ID_M=8 http://adres.pl/kontakt.html



Jednak przy powyższym zapisie otwiera mi  

http://adres.pl/kontakt?ID_M=8

Co owocuje błędem, że taki plik nie istnieje, bo faktycznie nie istnieje. A powinno być:

http://adres.pl/kontakt.html



Serwer to nazwa.pl

Odnośnik do komentarza
Udostępnij na innych stronach

Uciekaj z nazwy, bo koszty cie zjedzą, a support też zostawia wiele do życzenia ?

 

Spróbuj takiego rozwiązania

RewriteEngine On
RewriteCond %{QUERY_STRING} ^ID_M=8$ [NC]
RewriteRule ^miasta\.php$ http://adres.pl/kontakt.html [L,R=301]

 

Pomogłem? Podziękuj punktem reputacji ->

dzięki    
Odnośnik do komentarza
Udostępnij na innych stronach

Efekt wygląda tak.:
 

http://adres.pl/kontakt?ID_M=8

I nie wiem dlaczego dla podstrony kontakt tak to wygląda, że obcina .html

Bo przykładowo poniższe przekierowanie dla innej podstrony, które zrobiłem wczoraj:
 

RewriteCond %{QUERY_STRING} ^ID_M=2$
RewriteRule ^miasta.php$ http://adres.pl/aaaa-bbbb-cccc.html$ [R=301,L]

Daje wynik:
 

http://adres.pl/aaaa-bbbb-cccc.html?ID_M=2


Wówczas owszem przekierowuje ale zostawia ?ID_M=2
A z jakiegoś powodu przy podstronie kontakt obcina .html



Tak też uważam, że nazwa to nieporozumienie na każdym poziomie, żeby nie napisać, że jest to tragedia, o cenach nawet nie mówiąc bo ludzie nie czytają warunków oferty i wpadają w tą pułapkę.
To strona klienta znajomego, który poprosił mnie o pomoc i walczę z tym przekierowaniem od wczoraj.
Ja  swój hosting mam na mydevil, a przez lata był to iq.

 

 

Znalazłem jeszcze takie rozwiązanie w przypadku kontakt.html żeby dodało rozszerzenie, które z jakiegoś powodu obcina

Redirec

Redirect 301 /miasta.php?ID_M=8$ http://adres.pl/kontakt.html
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.]+?)/?$ /$1.html [L,R=301]


Zostało usunięcie

?ID_M=8

które dodaje się do każdego odnośnika po przekierowaniu.

Edytowane przez Hejkum
dodatkowe uwagi
Odnośnik do komentarza
Udostępnij na innych stronach

https://perishablepress.com/redirect-query-string-htaccess/

 

I co innego jest przepisanie adresu na serwerze, a co innego jest przekierowanie na inny adres.

Nie wiem, co tam dokładnie robisz, ale przy parametrach przekazywanych metodą GET zainteresuje się flagą: QSA

https://httpd.apache.org/docs/current/en/rewrite/flags.html#flag_qsa
https://pomoc.home.pl/baza-wiedzy/reguly-przepisania-w-mod_rewrite

 

  • Thanks 1

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

18 godzin temu, Mion napisał:

I co innego jest przepisanie adresu na serwerze, a co innego jest przekierowanie na inny adres.

 

Dokładnie.

 

O ile same reguły mod_rewrite są poprawnie zbudowane, to ich interpretacja na serwerach nazwa.pl zawsze będzie prawidłowa. Jeżeli @Harry @Hejkum macie jakiekolwiek uwagi na temat hostingu nazwa.pl, zapraszam do bezpośredniego kontaktu ze mną, może być przez PW. Sprawdzę usługi, które u nas posiadacie i zgłoszenia które w ich sprawie były wysyłane. 

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • 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