How to route redirect in Laravel?
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.