# Resizer v1 to v2 redirects

Source: https://dev.arcxp.com/photo-center/image-resizer/resizer-v1-to-v2-redirects/

The redirect solution redirects existing v1 URLs to v2 URLs

When you complete the migration to Resizer v2, the system no longer generates new Resizer v1 URLs. Ideally, you must fully transition to Resizer v2 before the Resizer v1 deprecation to prevent any errors with your images. However, there may be circumstances where complete migration to Resizer v2 is not possible. That is why Arc XP implemented v1 to v2 redirects to safeguard your image URLs and the impact of SEO.

> **Note:**
> 
> After migrating to Resizer v2, keep in mind that search engines may have indexed v1 image URLs, which might take some time to update, and impact SEO.

## Redirector solution

The redirector solution redirects existing v1 URLs to v2 URLs. Due to the large number of existing transformation parameters and combinations, the redirector solution cannot accommodate and map every possible transformation. The following is an example of a Resizer v1 image URL with available parameters for redirection:

```
/hmac/trim/AxB:CxD/(adaptive-)(full-)fit-in/-Ex-F/HALIGN/VALIGN/smart/filters:FILTERNAME(ARGUMENT):FILTERNAME(ARGUMENT)/{IMAGE-URI}
```

## Supported v1-to-v2 redirect transformations

The following table lists the supported v1 path parameters that the redirector converts to v2 query parameters before redirection.

| **v1 Transformation**                                                     | **v2 Transformation**                                                         |
| ------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| Secret key: /hmac/                                                        | Auth token: &auth=123...Example: &auth=e6199a7bb690e478e8....                 |
| Manual crop: AxB:CxDExample: ../100x100:250x250/..                        | Manual crop: &crop=X,Y:CropWidth,CropHeightExample: ..&crop=100,100:150,150.. |
| Fit-in: fit-inExample: ../fit-in/350x350/..                               | Fit-fill: &fitfill=trueExample: ..&width=350&height=350&fitfill=true..        |
| Resize, positive values: ExFExample: ../350x350/..                        | Resize: &width=x&height=yExample: ..&width=350&height=350..                   |
| Smart crop: smartExample: ../350x350/smart/..                             | Smart crop: &smart=trueExample: ..&width=350&height=350&smart=true..          |
| Blur: ../filters:blur()/..Example: ../filters:blur(75)/..                 | Blur: &blur=xExample: ..&blur=75..                                            |
| Focal: ../filters:focal()/..Example: ../filters:focal(100x100:110x110)/.. | Focal: &focal=x,yExample: ..&focal=105,105..                                  |
| Quality: ../filters:quality()/..Example: ../filters:quality(75)/..        | Quality: &quality=xExample: ..&quality=75..                                   |

## Unsupported v1-to-v2 redirect transformations

The following table lists the unsupported v1 transformations and describes the reasons behind them.

| **v1 Transformation**                                                                                                 | **Reason not to support**                                                                                                          |
| --------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| Trim trim                                                                                                             | No customer usage                                                                                                                  |
| Resize, negative values \-Ex-F                                                                                        | No customer usage                                                                                                                  |
| Resize alignment /HALIGN/VALIGN/_Tells v1 what side of the image to preserve when a resize request requires cropping_ | Not directly supported in v2Instead, use smart crop &smart=true                                                                    |
| Fit-in, adaptive, or full adaptive-fit-in or full-fit-in                                                              | No customer usage                                                                                                                  |
| ../filters:autojpg()/..                                                                                               | No customer usage                                                                                                                  |
| ../filters:brightness()/..                                                                                            | No customer usage                                                                                                                  |
| ../filters:contrast()/..                                                                                              | No customer usage                                                                                                                  |
| ../filters:convolution()/..                                                                                           | No customer usage                                                                                                                  |
| ../filters:cover()/..                                                                                                 | No customer usage                                                                                                                  |
| ../filters:equalize()/..                                                                                              | No customer usage                                                                                                                  |
| ../filters:extract\_focal()/..                                                                                        | No customer usage                                                                                                                  |
| ../filters:grayscale()/..                                                                                             | No customer usage                                                                                                                  |
| ../filters:noise()/..                                                                                                 | No customer usage                                                                                                                  |
| ../filters:proportion()/..                                                                                            | No customer usage                                                                                                                  |
| ../filters:rgb()/..                                                                                                   | No customer usage                                                                                                                  |
| ../filters:rotate()/..                                                                                                | No customer usage                                                                                                                  |
| ../filters:round\_corner()/..                                                                                         | No customer usage                                                                                                                  |
| ../filters:saturation()/..                                                                                            | No customer usage                                                                                                                  |
| ../filters:sharpen()/..                                                                                               | No customer usage                                                                                                                  |
| ../filters:stretch()/..                                                                                               | No customer usage                                                                                                                  |
| ../filters:background\_color()/..                                                                                     | Not directly supported in v2\. No replacement, will ignore.                                                                        |
| ../filters:filling()/..                                                                                               | Not directly supported in v2\. No replacement, will ignore.                                                                        |
| ../filters:format()/..                                                                                                | Not directly supported in v2\. No replacement, will ignore. This is also redundant because Akamai optimizes the format on Delivery |
| ../filters:max\_bytes()/..                                                                                            | Not directly supported in v2\. No replacement, will ignore.                                                                        |
| ../filters:no\_upscale()/..                                                                                           | Not directly supported in v2\. No replacement, will ignore.                                                                        |
| ../filters:strip\_exif()/..                                                                                           | Not directly supported in v2\. No replacement, will ignore. This is also redundant because Akamai removes exif on Delivery         |
| ../filters:strip\_icc()/..                                                                                            | Not directly supported in v2\. No replacement, will ignore. This is also redundant because Akamai removes icc on Delivery.         |
| ../filters:upscale()/..                                                                                               | Not directly supported in v2\. No replacement, will ignore.                                                                        |

> **Note:**
> 
> For the transformations not directly supported in v2, the redirector solution ensures that v1 URLs do not fail by either:
> 
> - Serving the image without the transformation applied.
> - If available, filling the gap with an existing v2 transformation that produces a similar output.

## Important caveats

- Our redirector solution cannot guarantee a 100% match to the v2 image path you migrated to. This can negatively impact image SEO if the redirected v2 image path is different than the migrated v2 image path.
- Do not rely on the redirector solution as a substitute for a proper migration to Resizer v2\. This may negatively impact page SEO if there are many 301 image redirects.
- v1 images have a one-year time-to-live (TTL). As part of the v1 deprecation, Arc XP is NOT clearing cache for v1, so those URLs will NOT be redirected for one year at most (which is the cache limit). After the URLs fall out of cache, the redirector solution redirects them to Resizer v2.
- We will upgrade the URLs provided in image Arc XP Native Specification (ANS) data to be v2 at some point in the future, including those used by Queryly. This includes:

  - ANS URLs  
    - Path includes `*arc-anglerfish-*`
    - Path includes `*arc-photo-*`
  - Video thumbnail URLs  
    - Path includes `*arc-goldfish-*-thumbnails*`
