How to route redirect in Laravel?
Laravel
2 months ago
Routing
In Laravel, routes define the URL patterns and their corresponding actions within your application. They act as the entry points for incoming requests.
Basic Routing
-
Create a route:
- Open the
routes/web.php
file in your Laravel project. - Use the
Route::get()
method to define a GET route:
PHP
Route::get('/', function () { return 'Hello, world!'; });
- This route will handle requests to the root URL (http://your-app.com/) and return the text "Hello, world!".
- Open the
-
Test the route:
- Start your Laravel development server using
php artisan serve
. - Access the root URL in your web browser to see the "Hello, world!" message.
- Start your Laravel development server using
Named Routes
- Named routes make it easier to reference routes in your application, especially when generating URLs dynamically.
PHP
Route::get('/', function () {
return 'Hello, world!';
})->name('home');
- Now you can reference this route using its name:
PHP
<a href="{{ route('home') }}">Home</a>
Route Parameters
- Use placeholders in routes to capture dynamic segments of the URL:
PHP
Route::get('/users/{id}', function ($id) {
return "User ID: $id";
});
- This route will match URLs like [invalid URL removed], [invalid URL removed], etc.
Route Groups
- Group routes together to apply common attributes or middleware:
PHP
Route::group(['prefix' => 'admin', 'middleware' => 'auth'], function () {
Route::get('/', function () {
return 'Admin dashboard';
});
Route::get('/users', function () {
return 'List of users';
});
});
- This group applies the
admin
prefix to all routes within it and requires authentication for access.
Redirects
- Use the
redirect()
helper function to redirect users to another URL:
PHP
Route::get('/old-url', function () {
return redirect('/new-url');
});
-
This route will redirect users from [invalid URL removed] to [invalid URL removed].
-
You can also use named routes for redirects:
PHP
Route::get('/old-url', function () {
return redirect()->route('home');
});
Permanent Redirects
- Use the
redirect()->permanent()
method to indicate a permanent redirect to search engines:
PHP
Route::get('/old-url', function () {
return redirect()->permanent('/new-url');
});
Temporary Redirects
- Use the
redirect()->temporary()
method for temporary redirects:
PHP
Route::get('/old-url', function () {
return redirect()->temporary(302, '/new-url');
});
Additional Tips
- Use route caching to improve performance in production environments.
- Leverage middleware to handle common tasks like authentication, authorization, and rate limiting.
- Consider using a routing package like
spatie/laravel-route-discovery
for automatic route registration.
By understanding these concepts and techniques, you can effectively manage routing and redirects in your Laravel applications.