Stránka 1 z 1
.htaccess ? uložení bez přípony
Napsal: 19 led 2023 22:58
od Puzzlehead
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
Re: .htaccess ? uložení bez přípony
Napsal: 20 led 2023 01:04
od rhsCZ
Pokud má web podporu mod rewrite tak do
.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=$1
a vytvoříš download.php s
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-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!");
}
}
?>
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

Re: .htaccess ? uložení bez přípony
Napsal: 20 led 2023 08:19
od Puzzlehead
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.
Kód: Vybrat vše
header('Content-Disposition: attachment; filename="' . basename($filepath).'"');
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í.
Kód: Vybrat vše
RewriteRule ^([^.]+)$ https://%{SERVER_NAME}/(doplněné složky)/download.php?file=$1
Díky
Re: .htaccess ? uložení bez přípony
Napsal: 20 led 2023 14:11
od rhsCZ
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
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!");
}
}
?>
Jinak prvně jsem tě asi špatně pochopil.