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 ...

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.

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

kliknij o tutaj, 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 ->

kliknij o tutaj, 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

Zarchiwizowany

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

  • 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