feat: add url shortener
This commit is contained in:
parent
1e665a66ff
commit
03bded49ff
3 changed files with 55 additions and 0 deletions
1
shortener/.gitignore
vendored
Normal file
1
shortener/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
links/
|
32
shortener/README.md
Normal file
32
shortener/README.md
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
# ash.ley
|
||||||
|
|
||||||
|
A simple link shortener. Its a single PHP script which requires a small about of webserver configuration. Adding new links just requires adding a file to the `links/` folder containing the URL to link to.
|
||||||
|
|
||||||
|
## Webserver configuration
|
||||||
|
|
||||||
|
```nginx
|
||||||
|
server {
|
||||||
|
server_name ash.ley;
|
||||||
|
root /var/www/ash.ley;
|
||||||
|
|
||||||
|
location ~ ^/links {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
|
||||||
|
location / {
|
||||||
|
try_files @ashdotley;
|
||||||
|
}
|
||||||
|
|
||||||
|
location @ashdotley {
|
||||||
|
rewrite ^/(.*) /index.php?id=$1&$args last;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ ^/index.php$ {
|
||||||
|
include fastcgi_params;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
fastcgi_param REDIRECT_STATUS 200;
|
||||||
|
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
22
shortener/index.php
Normal file
22
shortener/index.php
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
<?php
|
||||||
|
if (isset($_GET['l'])) {
|
||||||
|
$l = $_GET['l'];
|
||||||
|
if (str_contains($l, '/') || str_contains($l, '~') || str_contains($l, '.')) {
|
||||||
|
http_response_code(400);
|
||||||
|
echo "hehe no you don't";
|
||||||
|
die;
|
||||||
|
}
|
||||||
|
$path = 'links/'.$l;
|
||||||
|
if (file_exists($path)) {
|
||||||
|
$target = file_get_contents($path);
|
||||||
|
header('Location: ' . $target);
|
||||||
|
} else {
|
||||||
|
http_response_code(404);
|
||||||
|
echo "<h1>not found</h1>";
|
||||||
|
echo 'nyy-a?';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
echo "<h1>nyaaaa!</h1>";
|
||||||
|
echo "~w~\n";
|
||||||
|
}
|
||||||
|
?>
|
Loading…
Reference in a new issue