Это поведение связано с тем, что Laravel по умолчанию использует регулярные выражения для параметров маршрутов. Параметр `{article}` в вашем маршруте соответствует любому значению, включая цифры, буквы и любые другие символы, за исключением `/`. Поэтому URL-ы, такие как `/a/7asd` или `/a/7qwerty`, также успешно сопоставляются с данным маршрутом и обрабатываются.
Чтобы улучшить строгость маршрутизации и ограничить допустимые значения для параметра `{article}`, вы можете использовать регулярные выражения в определении маршрута, чтобы разрешить только числовые значения. Для этого замените `{article}` на `{article}` с указанием регулярного выражения. Вот как это сделать:
```php
Route::get('a/{article}', [ArticleController::class, 'show'])
->where('article', '[0-9]+')
->name('article.show');
```
В данном случае, `where('article', '[0-9]+')` устанавливает правило, что параметр `article` может состоять только из одной или более цифр (от 0 до 9). Таким образом, URL типа `/a/7` будет соответствовать маршруту, а URL'ы типа `/a/7asd` или `/a/7qwerty` будут возвращать 404 ошибку, так как они не удовлетворяют установленному регулярному выражению.
Использование ограничений на параметры маршрутов помогает сделать ваше приложение более безопасным и избегать неожиданных результатов при запросах к неправильным URL.