I have a subdomain:

```
https://blog.example.com/

```

I forcibly redirects to directory:

```
https://www.example.com/blog

```

By changing site URL and some RewriteRule on .htaccess.

My **.htaccess**:

```
    <IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteBase /blog/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /blog/index.php [L]

    RewriteCond %{HTTP:X-Forwarded-Host}i ^example\.com
    RewriteCond %{HTTP_HOST} ^blog\.example\.com$
    RewriteRule ^/?(.*)$ https://www.example.com/blog/$1 [L,R=301,NC]

    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteCond %{HTTPS} off
    RewriteRule ^/?(.*)$ https://www.example.com/blog/$1 [L,R=301,NC]
    </IfModule>

```

My wordpress address and site address are:

**WordPress Address (URL)**: `/blog`

**Site Address (URL)**: `https://www.example.com/blog`

Now the website working fine, but I found an error in wp-admin canonical url on all admin pages:

```
Uncaught SecurityError: Failed to execute 'replaceState' on 'History': A history state object with URL 'blog.example.com/wp-admin/index.php'; cannot be created in a document with origin 'example.com'; and URL 'example.com/blog/wp-admin/index.php';

```

When I dig more I found the canonical link is still subdomain( **blog.example.com** ) :

```
<link id="wp-admin-canonical" rel="canonical" href="http://blog.example.com/wp-admin" />
    <script>
        if ( window.history.replaceState ) {
            window.history.replaceState( null, null, document.getElementById( 'wp-admin-canonical' ).href + window.location.hash );
        }
    </script>

```

Is there any solution for changing this canonical url from **<https://blog.example.com>** to **<https://www.example.com/blog>**