Default controller findOne returns 404 while data exists in v5.10.3
### Node Version

20.15.1

### NPM/Yarn/PNPM Version

10.7.0

### Strapi Version

5.10.3

### Operating System

MacOS

### Database

SQLite

### Javascript or Typescript

Typescript

### Reproduction URL

_No response_

### Bug Description




## Description
When using the default controller created by `factories.createCoreController`, the findOne method always returns 404 even though the data exists in the database. This happens with the latest version (v5.10.3).

## Current Behavior
- List query (`GET /api/blogs`) works fine and returns data
- Detail query (`GET /api/blogs/1`) returns 404 with default controller
- The same detail query works when using a custom controller

## Expected Behavior
The default controller should be able to fetch detail data when using the standard findOne endpoint.



### Steps to Reproduce

## Steps to Reproduce
1. Create a new content type:
```typescript
// src/api/blog/controllers/blog.ts
export default factories.createCoreController('api::blog.blog');
```

2. Disable draft/publish in schema:
```json
// src/api/blog/content-types/blog/schema.json
{
  "kind": "collectionType",
  "options": {
    "draftAndPublish": false
  }
}
```

3. Create test data through admin panel
4. Try to fetch detail with: `GET /api/blogs/1`

## Debug Information
List query response:
```json
{
  "data": [
    {
      "id": 1,
      "documentId": "oan85xy1cknf43dpdncm5opk",
      "title": "1",
      "content": [...],
      // ...
    }
  ]
}
```

Detail query response:
```json
{
  "data": null,
  "error": {
    "status": 404,
    "name": "NotFoundError",
    "message": "Not Found",
    "details": {}
  }
}
```

Parameter parsing debug log shows:
```javascript
Parameters: { '0': 'api/blogs/1', id: '1' }
Query result: null
```

The parameter parsing seems incorrect as it includes the full API path.

## Workaround
The issue can be temporarily resolved by using a custom controller:
```typescript
export default factories.createCoreController('api::blog.blog', ({ strapi }) => ({
  async findOne(ctx) {
    const { id } = ctx.params;
    const entity = await strapi.entityService.findOne('api::blog.blog', id, {
      populate: '*'
    });
    if (!entity) {
      return ctx.notFound('Blog not found');
    }
    return { data: entity };
  }
}));
```




### Expected Behavior



## Expected Behavior

1. When using the default controller, the findOne endpoint should:
   - Successfully retrieve the article by ID
   - Return a properly formatted response with status 200
   - Include the full article data in the response

2. The response should follow Strapi's standard format:
```json
{
  "data": {
    "id": 1,
    "attributes": {
      "title": "Example Title",
      "content": "Example Content",
      "createdAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-01T00:00:00.000Z"
    }
  }
}
```

3. The default controller should handle:
   - Valid ID parameters correctly
   - Return 404 only when the article truly doesn't exist
   - Properly populate any related fields if specified in the query

4. The behavior should be consistent with:
   - Strapi's documentation
   - The list endpoint behavior
   - Standard REST API practices


### Logs

```shell

```

### Code Snippets

_No response_

### Media

_No response_

### Additional information

_No response_

### Confirmation Checklist

- [x] I have checked the existing [issues](https://github.com/strapi/strapi/issues) for duplicates.
- [x] I agree to follow this project's [Code of Conduct](https://github.com/strapi/strapi/blob/develop/CODE_OF_CONDUCT.md).