| Server IP : 35.80.110.71 / Your IP : 216.73.216.221 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ip-172-31-21-44 6.17.0-1019-aws #19~24.04.1-Ubuntu SMP Tue Jun 23 18:53:06 UTC 2026 x86_64 User : ubuntu ( 1000) PHP Version : 8.3.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/client-portal-laravel/releases/20260626120707/routes/ |
Upload File : |
<?php
/**
* Marketing Site Routes
*
* These routes handle the public marketing site at scopeforged.com.
* All authentication (login/signup) happens here with role-based redirects.
*
* @see config/domains.php for domain configuration
* @see bootstrap/app.php for domain routing setup
*/
use App\Http\Controllers\Marketing\AboutController;
use App\Http\Controllers\Marketing\AuditsController;
use App\Http\Controllers\Marketing\AuthController;
use App\Http\Controllers\Marketing\BlogController;
use App\Http\Controllers\Marketing\CaseStudyController;
use App\Http\Controllers\Marketing\ContactController;
use App\Http\Controllers\Marketing\FaqController;
use App\Http\Controllers\Marketing\HomeController;
use App\Http\Controllers\Marketing\ProcessController;
use App\Http\Controllers\Marketing\ServicesController;
use App\Http\Controllers\Marketing\SitemapController;
use Illuminate\Support\Facades\Route;
// Public pages
Route::get('/', [HomeController::class, 'index'])->name('marketing.home');
Route::get('/process', [ProcessController::class, 'index'])->name('marketing.process');
Route::get('/services', [ServicesController::class, 'index'])->name('marketing.services');
Route::get('/services/{service}', [ServicesController::class, 'show'])->name('marketing.services.show');
Route::get('/audits', [AuditsController::class, 'index'])->name('marketing.audits');
Route::get('/about', [AboutController::class, 'index'])->name('marketing.about');
Route::get('/contact', [ContactController::class, 'index'])->name('marketing.contact');
Route::post('/contact', [ContactController::class, 'store'])
->middleware('throttle:contact-form')
->name('marketing.contact.store');
// FAQ
Route::get('/faq', [FaqController::class, 'index'])->name('marketing.faq');
// Blog
Route::get('/blog', [BlogController::class, 'index'])->name('blog.index');
Route::get('/blog/category/{slug}', [BlogController::class, 'category'])->name('blog.category');
Route::get('/blog/{slug}', [BlogController::class, 'show'])->name('blog.show');
// Case Studies
Route::get('/case-studies', [CaseStudyController::class, 'index'])->name('marketing.case-studies.index');
Route::get('/case-studies/{caseStudy}', [CaseStudyController::class, 'show'])->name('marketing.case-studies.show');
// Authentication routes (guest only)
Route::middleware('guest')->group(function () {
Route::get('/login', [AuthController::class, 'showLogin'])->name('login');
Route::post('/login', [AuthController::class, 'login']);
Route::get('/signup', [AuthController::class, 'showSignup'])->name('marketing.signup');
Route::post('/signup', [AuthController::class, 'signup'])->middleware('throttle:signup');
Route::get('/forgot-password', [AuthController::class, 'showForgotPassword'])->name('password.request');
Route::post('/forgot-password', [AuthController::class, 'sendResetLink'])->name('password.email');
Route::get('/reset-password/{token}', [AuthController::class, 'showResetPassword'])->name('password.reset');
Route::post('/reset-password', [AuthController::class, 'resetPassword'])->name('password.store');
});
// Logout (authenticated)
Route::post('/logout', [AuthController::class, 'logout'])
->middleware('auth')
->name('logout');
// Documentation (serves raw markdown files for portfolio docs viewer)
Route::get('/docs/{path}', function (string $path) {
$file = base_path($path);
if (! file_exists($file) || ! str_ends_with($file, '.md')) {
abort(404);
}
return response(file_get_contents($file), 200, [
'Content-Type' => 'text/plain',
'Access-Control-Allow-Origin' => 'https://www.philiprehberger.com',
]);
})->where('path', '.*')->name('marketing.docs');
// Legal pages
Route::view('/privacy', 'marketing.privacy')->name('marketing.privacy');
Route::view('/terms', 'marketing.terms')->name('marketing.terms');
// Sitemap
Route::get('/sitemap.xml', [SitemapController::class, 'index'])->name('marketing.sitemap');