Skocz do zawartości

Przekierowanie 301 pliku pdf


TAGBA

Rekomendowane odpowiedzi

3 godziny temu, TAGBA napisał:

Jak prawidłowo zrobić przekierowanie 301 dla pliku pdf.

Tak samo jak "inne" nieprzekierowani. To nie jest jakis MAGICZNY mechanizm, ale zwykły nagłówek serwera ...

  • Like 2

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

  • 5 miesięcy temu...

Odgrzebię temat. Próbuję zrobić przekierowanie starego pliku pdf na nowy. Chodzi o to, że link był udostępniany w różnych miejscach i nie chciałbym tym osobom ograniczać dostępu przez niedziałający link.

Stary adres https://domena.pl/pliki/nazwapliku.pdf 

Nowy adres https://domena.pl/pliki/nowanazwapliku.pdf

 

Próbowałem ścieżki:

RewriteRule ^nazwapliku.pdf$ https://domena.pl/pliki/nowanazwapliku.pdf? [R=301,L]

RewriteRule nazwapliku.pdf https://domena.pl/pliki/nowanazwapliku.pdf [R=301,L]

 

Nijak nie mogę tego zrobić i na wszelkie kombinacje serwer wywala błąd 500. A bez przekierowań oczywiście 404.

Serwer z nazwa.pl więc wszystko powinno działać.

Na innej domenie na tym samym serwerze przekierowania podstron działają. Chociaż nie próbowałem dla pliku. 

Szukałem, kombinowałem, próbowałem generatora przekierowania 301 i nic.

Generator stworzył:

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^pliki/nazwapliku\.pdf$ /pliki/nowanazwapliku.pdf? [R=301,L]

 

Jestem początkujący, nie rozumiem niektórych komend i proszę o łopatologiczną pomoc. Gdzie mogę popełniać błąd lub co jeszcze mogę wypróbować.

Pozdrawiam.

Michał

Odnośnik do komentarza
Udostępnij na innych stronach

Sprawdź:

RewriteEngine on
Redirect 301 /pdf/old_file.pdf https://domain.tst/pdf/new_file.pdf

Tylko testuj w trybie incognito przeglądarki.

  • Like 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

Cześć @Mich,

Jestem pewny, że w twoim przypadku zadziała RedirectMatch (mod_alias) zamiast Rewrite (mod_rewrite).

 

<IfModule mod_alias.c>
RedirectMatch 301 ^/pliki/nazwapliku.pdf$ https://domena.pl/pliki/nowanazwapliku.pdf
</IfModule>

 

Daj koniecznie znać czy działa, jeśli nie to coś pokombinujemy ;)

Pozdrawiam

Pomogłem? Podziękuj punktem reputacji ->

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

Częściowo działa.

Wygląda na to, że działa dla plików pisanych bez spacji:

oldfile.pdf

 

Otwierają się podając już nową nazwę pliku newfile.pdf

 

Ale mam jeszcze pliki pisane ze spacją old file.pdf co Google zamieniało na old%20file.pl

W htaccess wpisałem ścieżkę

Redirect 301 /pliki/old%20file.pdf https://domena.pl/pliki/new-file.pl

 

Tzn. w trybie incognito dwa z tych plików się otworzyły, ale podają starą nazwę czyli tak jakby widział je z pamięci (mimo trybu incognito).

Pozostałe mają błąd 404.

Czy to możliwe, że to jest problem.

Z tego co pamiętam to chyba w php było tzw. dokładne dopasowanie czyli znak '

Czy w htaccess też jest coś takiego?

Z góry dziękuję za konkretną pomoc i naukę.

Sorry druga odpowiedź od Harry wskoczyła mi jak pisałem posta. 

Na razie testuję poradę od Mion czyli Redirect 301.

Odnośnik do komentarza
Udostępnij na innych stronach

@Mich w takim razie proponuję spróbować jedną z dwóch rzeczy:

  1. Zamiast spacji wpisywać %20, bo w kodowaniu URL właśnie tak odczytywana jest spacja
    • RedirectMatch 301 ^/pliki/nazwapliku.pdf$ https://domena.pl/pliki/nowa%20nazwa%20pliku.pdf

       

  2. Adresy nowego pliku wrzucaj w cudzysłów
    • RedirectMatch 301 ^/pliki/nazwapliku.pdf$ "https://domena.pl/pliki/nowa nazwa pliku.pdf"

Pozdrawiam

Pomogłem? Podziękuj punktem reputacji ->

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

Stan jest taki:

Redirect 301 /pliki/oldfile.pdf https://domena.pl/pliki/new-file.pl - działa (bez spacji i innych znaków)
 

Redirect 301 /pliki/oldfile.pdf https://domena.pl/pliki/new-file.pl

Działa. Dla starych plików, które nie mają spacji. Nowe pliki żadne nie mają spacji więc pomijam.

Redirect 301 /pliki/old%20file.pdf https://domena.pl/pliki/new-file.pl
Redirect 301 ^/pliki/old%20file.pdf$ https://domena.pl/pliki/new-file.pl
Redirect 301 ^/pliki/old%20file.pdf$ "https://domena.pl/pliki/new-file.pl"

Nie działają.

<IfModule mod_alias.c>
RedirectMatch 301 ^/pliki/old%20file.pdf$ https://domena.pl/pliki/new-file.pdf
</IfModule>
<IfModule mod_alias.c>
RedirectMatch 301 ^/pliki/old%20file.pdf$ "https://domena.pl/pliki/new-file.pdf"
</IfModule>

Nie działają.

 

Cały kod pliku póki co:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
Redirect 301 /pliki/oldfile.php https://domena.pl/pliki/new-file.php
Redirect 301 /pliki/old%20file.php https://domena.pl/pliki/new-file.php

Tylko wierszy plików więcej. Raptem 10 wierszy.

 

Te pliki ze spacją %20 które wcześniej wyświetlały się "z pamięci" już też się nie wyświetlają. Więc jedyna różnica między nimi to ta spacja zapisywana jako %20.

Odnośnik do komentarza
Udostępnij na innych stronach

Sprawdziłem poprawność plików docelowych wpisując:

Redirect 301 /pliki/test.pdf https://domena.pl/pliki/new-file.pdf

Zamiast:

Redirect 301 /pliki/old%20file.pdf https://domena.pl/pliki/new-file.pdf

Wtedy przekierowanie działa. 

Czyli tak jakby problemem była nazwa pliku ze spacją.

Odnośnik do komentarza
Udostępnij na innych stronach

No chyba oczywiste jest, że jak ma plik w nazwie pliku spację, to musi zostać dodana w definicji przekierowania ?

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

Nie no OK.

Tylko nie działa, ani:

Redirect 301 /pliki/old file.pdf https://domena.pl/pliki/new-file.pdf
Redirect 301 /pliki/old%20file.pdf https://domena.pl/pliki/new-file.pdf

To jak go wpisać?

 

Oryginalny plik to old file.pdf, który w linkach jest zapisany jako old%20file.pdf więc dla mnie logiczne było, że wpisuję old%20file.pdf bo jak zostawię spację to już tworzy się inna komenda.

Czy muszę jakoś zdefiniować w htaccess jak on ma rozumieć %20? 

Sorry jeżeli pytania są z gatunku oczywistych, ale uczę się jak to robić.

 

Próbowałem użyć generatora dostępnego na różnych stronach, ale generował kod:

old\ file.pdf

Strona wtedy wyrzucała błąd 500, a nie 404.

Odnośnik do komentarza
Udostępnij na innych stronach

Masz BANA w google ?

https://perishablepress.com/blank-space-whitespace-character-htaccess/

 

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

Dziękuję Ci dobry człowieku. Zakumałem, że właśnie %20 jest problemem jako spacja i teraz wyszukałem spacja w htaccess.

Zaczęło działać nawet ujęcie  w "" i wpisanie spacji zamiast %20.

Redirect 301 "/pliki/old file.pdf" https://domena.pl/pliki/new-file.pdf

Harry dobrze podpowiadał tylko w stosunku do pliku wyjściowego.

 

Ostatnie pytanie czy mogę to tak zostawić czy bezpieczniej będzie w jakiejś innej formie?

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