Ahoj,
potřeboval bych poradit jak nastavit .htaccess nebo co nastavit na webu, aby když kliknu na odkaz https://lolkovi.cz/pack_de , kde soubor pack_de je .gz balíček přímo v adresáři bez přípony .gz a mně se stáhne a doplní se přípona .gz automaticky. Já ho chci stahovat bez přípony.
Díky
.htaccess ? uložení bez přípony
Moderátor: Mods_senior
-
Puzzlehead
- nováček
- Příspěvky: 30
- Registrován: 26 lis 2009 02:43
Re: .htaccess ? uložení bez přípony
Pokud má web podporu mod rewrite tak do
.htaccess přidáš
a vytvoříš download.php s
Kdyžtak si přidej koncovky (vypis těch který to nemá zpracovávat) v "(xml|php|hmtl|shtml|phtml|txt|exe|zip|rar)" kdyby jich bylo málo 
.htaccess přidáš
Kód: Vybrat vše
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} !^\/([a-zA-Z0-9]+)\.(xml|php|hmtl|shtml|phtml|txt|exe|zip|rar)$
RewriteRule ^([^.]+)$ https://%{SERVER_NAME}/download.php?file=$1Kód: Vybrat vše
<?php
if (isset($_GET["file"])) {
// Get parameters
$file = urldecode($_GET["file"]); // Decode URL-encoded string
/* Check if the file name includes illegal characters
like "../" using the regular expression */
if (preg_match('/^[^.][-a-z0-9_.]+[a-z]$/i', $file)) {
$filepath = "./" . $file;
// Process download
if (file_exists($filepath)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . basename($filepath).'.gz"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($filepath));
flush(); // Flush system output buffer
readfile($filepath);
die();
} else {
http_response_code(404);
die();
}
} else {
die("Invalid file name!");
}
}
?>„Zeptáš-li se, budeš 5 minut vypadat jako blbec. Nezeptáš-li se, budeš blbcem po celý život.“
„Mnozí z těch, co žijí, by zasluhovali smrt. A mnozí z těch, co zemřeli, by si zasloužili žít.“ - John Ronald Reuel Tolkien
„Je lepší být nenáviděn pro to, jaký jsi, než být milován pro to, co nejsi.“ - Kurt Cobain
https://rhscz.eu
https://github.com/rhsCZ
-
Puzzlehead
- nováček
- Příspěvky: 30
- Registrován: 26 lis 2009 02:43
Re: .htaccess ? uložení bez přípony
Děkuji. Tohle funguje.
Jen jsem ještě musel umazat gz, aby to uložilo bez koncovky, ale to jsme si možná jen nerozuměli.
Teď ještě bojuji jak to nastvit abych mohl mít i v jiném adresáři.
Budu zkoušet, ale budu i rád za druhé nakopnutí.
Díky
Dodatečně přidáno po 4 hodinách 52 minutách 4 vteřinách:
Tak nakonec jsem to zvládl zadáním pevnou andresou, ale určitě by to šlo nějak i dynamicky podle složky ve které se nachází.
Díky
Jen jsem ještě musel umazat gz, aby to uložilo bez koncovky, ale to jsme si možná jen nerozuměli.
Kód: Vybrat vše
header('Content-Disposition: attachment; filename="' . basename($filepath).'"');Díky
Dodatečně přidáno po 4 hodinách 52 minutách 4 vteřinách:
Tak nakonec jsem to zvládl zadáním pevnou andresou, ale určitě by to šlo nějak i dynamicky podle složky ve které se nachází.
Kód: Vybrat vše
RewriteRule ^([^.]+)$ https://%{SERVER_NAME}/(doplněné složky)/download.php?file=$1Re: .htaccess ? uložení bez přípony
jde to jinak stačilo poupravit download.php (umí v podsložkách i v kořenovém adresáři) a nechat původní .htaccess
Jinak prvně jsem tě asi špatně pochopil.
Kód: Vybrat vše
<?php
if (isset($_GET["file"])) {
// Get parameters
$file = urldecode($_GET["file"]); // Decode URL-encoded string
/* Check if the file name includes illegal characters
like "../" using the regular expression */
if (preg_match('/^[^.][\/\\\-a-zA-Z0-9_.]+[a-zA-Z]$/i', $file)) {
$filepath = "" . $file;
// Process download
if (file_exists($filepath)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . basename($filepath).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($filepath));
flush(); // Flush system output buffer
readfile($filepath);
die();
} else {
http_response_code(404);
die();
}
} else {
die("Invalid file name!");
}
}
?>„Zeptáš-li se, budeš 5 minut vypadat jako blbec. Nezeptáš-li se, budeš blbcem po celý život.“
„Mnozí z těch, co žijí, by zasluhovali smrt. A mnozí z těch, co zemřeli, by si zasloužili žít.“ - John Ronald Reuel Tolkien
„Je lepší být nenáviděn pro to, jaký jsi, než být milován pro to, co nejsi.“ - Kurt Cobain
https://rhscz.eu
https://github.com/rhsCZ

