{"id":146589,"date":"2026-02-25T03:46:58","date_gmt":"2026-02-25T11:46:58","guid":{"rendered":"https:\/\/help.fooevents.com\/?post_type=docs&#038;p=146589"},"modified":"2026-03-09T23:56:37","modified_gmt":"2026-03-10T06:56:37","slug":"ochrona-folderow-biletow-pdf","status":"publish","type":"docs","link":"https:\/\/help.fooevents.com\/pl\/docs\/topics\/tickets\/pdf-tickets\/pdf-ticket-folder-protection\/","title":{"rendered":"Ochrona folder\u00f3w bilet\u00f3w PDF"},"content":{"rendered":"<p>FooEvents PDF tickets use an \u201cunlisted link\u201d model, similar to Google Drive\u2019s \u201canyone with the link\u201d sharing setting. Ticket file names are generated using an algorithm that produces obscure, non-sequential names, making them extremely difficult to guess, even if someone understands how FooEvents generates them.<\/p>\n<p>Assuming directory listing is disabled on your server, which is standard practice, the folder cannot be browsed and files are only accessible if the exact file name is known. FooEvents also adds a blank <code>indeks<\/code> do pliku <code>bilety w formacie PDF<\/code> jako dodatkowy \u015brodek ostro\u017cno\u015bci.<\/p>\n<h3>Zaawansowana ochrona folder\u00f3w<\/h3>\n<p>Mo\u017cesz doda\u0107 dodatkow\u0105 warstw\u0119 ochrony do folderu bilet\u00f3w PDF, blokuj\u0105c bezpo\u015bredni dost\u0119p z sieci do katalogu, w kt\u00f3rym przechowywane s\u0105 bilety PDF. Poni\u017csze metody przedstawiaj\u0105 r\u00f3\u017cne sposoby wykonania tej czynno\u015bci, w zale\u017cno\u015bci od konfiguracji serwera. S\u0105 to zaawansowane opcje przeznaczone dla w\u0142a\u015bcicieli witryn, kt\u00f3rzy chc\u0105 jeszcze bardziej zmniejszy\u0107 ryzyko udost\u0119pniania link\u00f3w do bilet\u00f3w i wol\u0105, aby bilety by\u0142y dystrybuowane za po\u015brednictwem kontrolowanych kana\u0142\u00f3w, takich jak tylko poczta e-mail.<\/p>\n<p><strong><u>Nale\u017cy pami\u0119ta\u0107, \u017ce bezpo\u015bredni dost\u0119p do folderu bilet\u00f3w PDF jest ograniczony:<\/u><\/strong><\/p>\n<ol>\n<li>Klienci nie b\u0119d\u0105 ju\u017c mogli pobiera\u0107 bilet\u00f3w w formacie PDF z sekcji Moje konto. Upewnij si\u0119, \u017ce <strong>FooEvents<\/strong> &gt; <strong>Ustawienia<\/strong> &gt; <strong>Bilety PDF<\/strong> &gt; <strong>W\u0142\u0105cz pobieranie bilet\u00f3w w formacie PDF<\/strong> jest wy\u0142\u0105czona. Je\u015bli pozostanie ona w\u0142\u0105czona, FooEvents doda stron\u0119 Bilety do sekcji Moje konto, gdzie u\u017cytkownicy mog\u0105 pr\u00f3bowa\u0107 pobra\u0107 bilety w formacie PDF, ale linki te nie b\u0119d\u0105 ju\u017c dzia\u0142a\u0107 po zablokowaniu dost\u0119pu do folderu.<\/li>\n<li>Administratorzy nie b\u0119d\u0105 ju\u017c mogli pobiera\u0107 bilet\u00f3w w formacie PDF z aplikacji <strong>Bilety<\/strong> screen in the WordPress admin area. If you want to view a PDF ticket, rather &#8216;resend&#8217; the ticket to your email address and download the PDF from there.<\/li>\n<\/ol>\n<h2>Ustawienia ochrony folder\u00f3w (Apache)<\/h2>\n<p>Jest to wbudowana opcja i mo\u017ce by\u0107 u\u017cywana tylko na <strong>Serwery Apache<\/strong>, poniewa\u017c opiera si\u0119 na <code>.htaccess<\/code> file to restrict access to the PDF tickets folder.<\/p>\n<p>Serwery Apache mog\u0105 wymusza\u0107 regu\u0142y na poziomie folder\u00f3w przy u\u017cyciu funkcji <code>.htaccess<\/code> plik. Umieszczaj\u0105c plik <code>.htaccess<\/code> wewn\u0105trz katalogu przechowywania bilet\u00f3w PDF, mo\u017cna odm\u00f3wi\u0107 bezpo\u015bredniego dost\u0119pu HTTP do przechowywanych plik\u00f3w PDF bilet\u00f3w. Ka\u017cdy bezpo\u015bredni adres URL biletu powinien w\u00f3wczas zwraca\u0107 <strong>403 Forbidden<\/strong> odpowied\u017a lub czasami <strong>404<\/strong>, depending on your host or security layer.<\/p>\n<p>To enable folder protection and automatically add the necessary .htaccess file to your <strong>bilety w formacie PDF<\/strong> wykonaj nast\u0119puj\u0105ce kroki:<\/p>\n<ol>\n<li>Zaloguj si\u0119 do witryny WordPress.<\/li>\n<li>Przejd\u017a do <strong>FooEvents<\/strong> &gt; <strong>Ustawienia<\/strong> &gt; <strong>Bilety PDF<\/strong>.<\/li>\n<li>W\u0142\u0105cz <strong>W\u0142\u0105cz ochron\u0119 folderu bilet\u00f3w PDF<\/strong> ustawienie.<\/li>\n<li>Znajd\u017a znany adres URL biletu PDF (taki, kt\u00f3ry zosta\u0142 wcze\u015bniej pomy\u015blnie pobrany).<\/li>\n<li>Odwied\u017a j\u0105 w przegl\u0105darce.<\/li>\n<li>Powiniene\u015b otrzyma\u0107 <strong>403 Forbidden<\/strong> odpowied\u017a lub <strong>404<\/strong> w zale\u017cno\u015bci od hosta lub warstwy zabezpiecze\u0144, zamiast pobierania.<\/li>\n<\/ol>\n<h3>Ochrona r\u0119czna (Apache)<\/h3>\n<p>Je\u015bli <strong>Ochrona folder\u00f3w bilet\u00f3w PDF<\/strong> ustawienie nie dzia\u0142a, spr\u00f3buj r\u0119cznie umie\u015bci\u0107 <code>.htaccess<\/code> file in the PDF tickets folder.<\/p>\n<p>Please follow these steps to manually add the <code>.htaccess<\/code> do pliku <code>bilety w formacie PDF<\/code> folder:<\/p>\n<ol>\n<li>Po\u0142\u0105cz si\u0119 z witryn\u0105 za pomoc\u0105 protoko\u0142u FTP\/SFTP lub mened\u017cera plik\u00f3w hosta.<\/li>\n<li>Przejd\u017a do: <em>wp-content\/uploads\/fooevents\/pdftickets\/<\/em><\/li>\n<li>Utw\u00f3rz plik o nazwie <strong>.htaccess<\/strong>.<\/li>\n<li>Dodaj nast\u0119puj\u0105c\u0105 zawarto\u015b\u0107 do pliku:<\/li>\n<\/ol>\n<pre><code># FooEvents Ochrona folderu bilet\u00f3w PDF.\r\n\r\n\tWymagaj wszystkich odrzuconych\r\n\r\n\r\n\r\n\tOdmowa od wszystkich\r\n<\/code><\/pre>\n<ol start=\"5\">\n<li>Zapisz plik.<\/li>\n<li>Znajd\u017a znany adres URL biletu PDF (taki, kt\u00f3ry zosta\u0142 wcze\u015bniej pomy\u015blnie pobrany).<\/li>\n<li>Odwied\u017a j\u0105 w przegl\u0105darce.<\/li>\n<li>Powiniene\u015b otrzyma\u0107 <strong>403 Forbidden<\/strong> odpowied\u017a lub <strong>404<\/strong> w zale\u017cno\u015bci od hosta lub warstwy zabezpiecze\u0144, zamiast pobierania.<\/li>\n<\/ol>\n<h3>Uwagi \/ Gotchas<\/h3>\n<ul>\n<li>Niekt\u00f3re hosty blokuj\u0105 lub zast\u0119puj\u0105 <em>.htaccess<\/em> zasady w <em>wp-content\/uploads\/<\/em>. Je\u015bli zasady nie maj\u0105 zastosowania, zapytaj gospodarza, czy <em>.htaccess<\/em> pliki s\u0105 dozwolone w katalogach uploads.<\/li>\n<li>Je\u015bli instalacja WordPress wykorzystuje niestandardow\u0105 \u015bcie\u017ck\u0119 przesy\u0142ania, lokalizacja folderu mo\u017ce by\u0107 inna.<\/li>\n<\/ul>\n<h2>Nginx (konfiguracja r\u0119czna)<\/h2>\n<p>Podobnie jak folder przesy\u0142ania WooCommerce mo\u017ce by\u0107 chroniony na Nginx, je\u015bli Twoja witryna korzysta z Nginx, mo\u017cesz doda\u0107 regu\u0142\u0119, aby odm\u00f3wi\u0107 dost\u0119pu do folderu bilet\u00f3w PDF w bloku serwera. Je\u015bli nie jeste\u015b pewien, jak to zrobi\u0107, popro\u015b o pomoc swoj\u0105 firm\u0119 hostingow\u0105.<\/p>\n<pre><code>location ^~ \/wp-content\/uploads\/fooevents\/pdftickets\/ {\r\n\tdeny all;\r\n}\r\n<\/code><\/pre>\n<p>If your WordPress installation uses a custom uploads path or is installed in a subdirectory, adjust the location path accordingly.<\/p>\n<p>Once the deny-access rule has been added, verify that it is working by following these steps:<\/p>\n<ol>\n<li>Znajd\u017a znany adres URL biletu PDF (taki, kt\u00f3ry zosta\u0142 wcze\u015bniej pomy\u015blnie pobrany).<\/li>\n<li>Odwied\u017a j\u0105 w przegl\u0105darce.<\/li>\n<li>Powiniene\u015b otrzyma\u0107 <strong>403 Forbidden<\/strong> odpowied\u017a lub <strong>404<\/strong> w zale\u017cno\u015bci od hosta lub warstwy zabezpiecze\u0144, zamiast pobierania.<\/li>\n<\/ol>","protected":false},"featured_media":0,"parent":879,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"default","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"doc_tag":[],"class_list":["post-146589","docs","type-docs","status-publish","hentry"],"comment_count":0,"_links":{"self":[{"href":"https:\/\/help.fooevents.com\/pl\/wp-json\/wp\/v2\/docs\/146589","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/help.fooevents.com\/pl\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/help.fooevents.com\/pl\/wp-json\/wp\/v2\/types\/docs"}],"replies":[{"embeddable":true,"href":"https:\/\/help.fooevents.com\/pl\/wp-json\/wp\/v2\/comments?post=146589"}],"version-history":[{"count":14,"href":"https:\/\/help.fooevents.com\/pl\/wp-json\/wp\/v2\/docs\/146589\/revisions"}],"predecessor-version":[{"id":146817,"href":"https:\/\/help.fooevents.com\/pl\/wp-json\/wp\/v2\/docs\/146589\/revisions\/146817"}],"up":[{"embeddable":true,"href":"https:\/\/help.fooevents.com\/pl\/wp-json\/wp\/v2\/docs\/879"}],"wp:attachment":[{"href":"https:\/\/help.fooevents.com\/pl\/wp-json\/wp\/v2\/media?parent=146589"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/help.fooevents.com\/pl\/wp-json\/wp\/v2\/doc_tag?post=146589"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}