Skip to content
Snippets Groups Projects
web.php 1.51 KiB
Newer Older
use Illuminate\Http\Request;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
Dominik Hebeler's avatar
Dominik Hebeler committed
 */
Dominik Hebeler's avatar
Dominik Hebeler committed
Route::post('/{url}', function ($url) {
    abort(405);
Dominik Hebeler's avatar
Dominik Hebeler committed
Route::get('healthz', function () {
    return response('', 200)
        ->header('Content-Type', 'text/plain');
});

Route::get('/', function () {
Dominik Hebeler's avatar
Dominik Hebeler committed
    if (env("APP_ENV", "") !== "production") {
        return view("development");
Dominik Hebeler's avatar
Dominik Hebeler committed
    } else {
        return redirect("https://metager.de");
    }
});

Route::get('index.css', 'BrowserVerification@verifyCss');

Dominik Hebeler's avatar
Dominik Hebeler committed
Route::post('/', function (Request $request) {
    $validatedData = $request->validate([
        'url' => 'required|url|max:255',
    ]);
    $url = $request->input('url', 'https://metager.de');
Dominik Hebeler's avatar
Dominik Hebeler committed
    $password = md5(env('PROXY_PASSWORD') . $url);
Dominik Hebeler's avatar
Dominik Hebeler committed
    $url = base64_encode(str_rot13($url));
    $target = urlencode(str_replace("/", "<<SLASH>>", $url));
    return redirect(action('ProxyController@proxyPage', ['password' => $password, 'url' => $target]));
Dominik Hebeler's avatar
Dominik Hebeler committed
});

Route::get('{password}/{url}', 'ProxyController@proxyPage')->middleware('throttle:60:1')->middleware('checkpw');
Dominik Hebeler's avatar
Dominik Hebeler committed

Route::get('proxy/{password}/{url}', 'ProxyController@proxy')->middleware('browserverification')->middleware('checkpw:true');