Error no redirect url

Cannot get next URL for redirect=»manual» #763


When you use redirect=»manual» there is not way to get the new URL, i.e. to where response was redirected.

Example for Firefox:

Server would response with redirect to /login/?next=/account/ .

Here is Javascript Response object:

So response.url is the URL I requested.

How could I get the URL where response was redirected to? There is no «redirect_url» and headers are empty.

As far as I understand the specification, with «manual» is meant to handle redirects manually. Then there should be a way to get this new URL and do another request to this new URL.

Here is what server send:

How to access this new url /login/?next=/account/ ?

The text was updated successfully, but these errors were encountered:

That is by design: This feature is useful in combination with service workers.

Maybe documentation of “redirect” block should be extended to reduce confusion? For example, a link to the url you provided?

What about renaming “manual” to false or “disabled” or “no-follow”? Current name gives wrong expectations, since you cannot handle redirects manually. It just do not follow, indicate it got redirect and do not raise an error.

I wouldn’t mind a link. It might also help to state that it’s primarily for handling navigation requests (which do redirects manually in a sense) in service workers.

Unfortunately renaming this at this point is too late as browsers have shipped the functionality, but I do agree that we made a bad call there. Mea culpa!

By the way, it would be great if provide an example how redirect=“manual” could be used with service workers for navigation. At least an idea.

Did you mean service workers that handle browser requests so that we app e. g. could work offline?

That would be helpful for devs.

Say the user navigates to /test . The service worker for that scope intercepts the fetch and forwards it to the server. The server responds with a redirect to /somewhere-else . If the service worker returns that redirect the browser will then navigate to /somewhere-else`, potentially hitting the same service worker or another. (The service worker could store these responses so this kind of redirect would also function offline.)

Note that typically redirects are followed for fetches (e.g., from , , fetch() by default), but navigation explicitly doesn’t want to follow redirects because we might want to ask a different service worker to handle the request as the scope or origin can change.

Note that the browser does get to see the contents of the redirect, but nobody else does per the aforementioned link.

Hmm, I have to admit I thought someone directly calling fetch(url, < redirect: "manual" >) from the main thread would be able to walk the redirect chain themselves. I guess I was confused when we added the manual redirect stuff.

We could offer that if the redirect response opts out of being opaque as per #601.


Redirections in HTTP

URL redirection, also known as URL forwarding, is a technique to give more than one URL address to a page, a form, or a whole Web site/application. HTTP has a special kind of response, called a HTTP redirect, for this operation.

Redirects accomplish numerous goals:

  • Temporary redirects during site maintenance or downtime
  • Permanent redirects to preserve existing links/bookmarks after changing the site’s URLs, progress pages when uploading a file, etc.


In HTTP, redirection is triggered by a server sending a special redirect response to a request. Redirect responses have status codes that start with 3 , and a Location header holding the URL to redirect to.

When browsers receive a redirect, they immediately load the new URL provided in the Location header. Besides the small performance hit of an additional round-trip, users rarely notice the redirection.

There are several types of redirects, sorted into three categories:

Permanent redirections

These redirections are meant to last forever. They imply that the original URL should no longer be used, and replaced with the new one. Search engine robots, RSS readers, and other crawlers will update the original URL for the resource.

Code Text Method handling Typical use case
301 Moved Permanently GET methods unchanged. Others may or may not be changed to GET . [1] Reorganization of a Web site.
308 Permanent Redirect Method and body not changed. Reorganization of a Web site, with non-GET links/operations.

[1] The specification did not intend to allow method changes, but there are existing user agents that do change their method. 308 was created to remove the ambiguity of the behavior when using non- GET methods.

Temporary redirections

Sometimes the requested resource can’t be accessed from its canonical location, but it can be accessed from another place. In this case, a temporary redirect can be used.

Search engine robots and other crawlers don’t memorize the new, temporary URL. Temporary redirections are also used when creating, updating, or deleting resources, to show temporary progress pages.

Code Text Method handling Typical use case
302 Found GET methods unchanged. Others may or may not be changed to GET . [2] The Web page is temporarily unavailable for unforeseen reasons.
303 See Other GET methods unchanged. Others changed to GET (body lost). Used to redirect after a PUT or a POST , so that refreshing the result page doesn’t re-trigger the operation.
307 Temporary Redirect Method and body not changed The Web page is temporarily unavailable for unforeseen reasons. Better than 302 when non- GET operations are available on the site.

[2] The specification did not intend to allow method changes, but there are existing user agents that do change their method. 307 was created to remove the ambiguity of the behavior when using non- GET methods.

Special redirections

304 (Not Modified) redirects a page to the locally cached copy (that was stale), and 300 (Multiple Choice) is a manual redirection: the body, presented by the browser as a Web page, lists the possible redirections and the user clicks on one to select it.

Code Text Typical use case
300 Multiple Choice Not many: the choices are listed in an HTML page in the body. Machine-readable choices are encouraged to be sent as Link headers with rel=alternate .
304 Not Modified Sent for revalidated conditional requests. Indicates that the cached response is still fresh and can be used.

Alternative way of specifying redirections

HTTP redirects aren’t the only way to define redirections. There are two others:

  1. HTML redirections with the element
  2. JavaScript redirections via the DOM

HTML redirections

HTTP redirects are the best way to create redirections, but sometimes you don’t have control over the server. In that case, try a element with its http-equiv attribute set to Refresh in the of the page. When displaying the page, the browser will go to the indicated URL.

The content attribute should start with a number indicating how many seconds the browser should wait before redirecting to the given URL. Always set it to 0 for accessibility compliance.

Obviously, this method only works with HTML, and cannot be used for images or other types of content.

JavaScript redirections

Redirections in JavaScript are performed by setting a URL string to the window.location property, loading the new page:

Like HTML redirections, this can’t work on all resources, and obviously, this will only work on clients that execute JavaScript. On the other hand, there are more possibilities: for example, you can trigger the redirect only if some conditions are met.

Order of precedence

With three ways to trigger redirections, several ways can be used at the same time. But which is applied first?

  1. HTTP redirects always execute first — they exist when there is not even a transmitted page.
  2. HTML redirects ( ) execute if there weren’t any HTTP redirects.
  3. JavaScript redirects execute last, and only if JavaScript is enabled.

When possible, use HTTP redirects and don’t add element redirects. If someone changes the HTTP redirects but forgets to change the HTML redirects, the redirects will no longer be identical, which could cause an infinite loop or other nightmares.

Use cases

There are numerous use cases for redirects, but as performance is impacted with every redirect, their use should be kept to a minimum.

Domain aliasing

Ideally, there is one location, and therefore one URL, for each resource. But there are reasons for alternative names for a resource:

Expanding the reach of your site

A common case is when a site resides at , but accessing it from should also work. Redirections for to are thus set up. You might also redirect from common synonyms or frequent typos of your domains.

Moving to a new domain

For example, your company was renamed, but you want existing links or bookmarks to still find you under the new name.

Requests to the http:// version of your site will redirect to the https:// version of your site.

Keeping links alive

When you restructure Web sites, URLs change. Even if you update your site’s links to match the new URLs, you have no control over the URLs used by external resources.

You don’t want to break these links, as they bring valuable users and help your SEO, so you set up redirects from the old URLs to the new ones.

Note: This technique does work for internal links, but try to avoid having internal redirects. A redirect has a significant performance cost (as an extra HTTP request occurs). If you can avoid it by correcting internal links, you should fix those links instead.

Temporary responses to unsafe requests

Unsafe requests modify the state of the server and the user shouldn’t resend them unintentionally.

Typically, you don’t want your users to resend PUT , POST or DELETE requests. If you serve the response as the result of this request, a simple press of the reload button will resend the request (possibly after a confirmation message).

In this case, the server can send back a 303 (See Other) response for a URL that will contain the right information. If the reload button is pressed, only that page is redisplayed, without replaying the unsafe requests.

Temporary responses to long requests

Some requests may need more time on the server, like DELETE requests that are scheduled for later processing. In this case, the response is a 303 (See Other) redirect that links to a page indicating that the action has been scheduled, and eventually informs about its progress, or allows to cancel it.

Configuring redirects in common servers


Redirects can be set either in the server config file or in the .htaccess of each directory.

The mod_alias module has Redirect and RedirectMatch directives that set up 302 redirects by default:

The URL will be redirected to , as will any files or directories under it ( will be redirected to )

RedirectMatch does the same, but takes a regular expression to define a collection of affected URLs:

All documents in the images/ directory will redirect to a different domain.

If you don’t want a temporary redirect, an extra parameter (either the HTTP status code to use or the permanent keyword) can be used to set up a different redirect:

The mod_rewrite module can also create redirects. It is more flexible, but a bit more complex.


In Nginx, you create a specific server block for the content you want to redirect:

To apply a redirect to a directory or only certain pages, use the rewrite directive:

In IIS, you use the element to configure redirections.

Redirection loops

Redirection loops happen when additional redirections follow the one that has already been followed. In other words, there is a loop that will never be finished and no page will ever be found.

Most of the time this is a server problem, and if the server can detect it, it will send back a 500 Internal Server Error . If you encounter such an error soon after modifying a server configuration, this is likely a redirection loop.

Sometimes, the server won’t detect it: a redirection loop can spread over several servers which each don’t have the full picture. In this case, browsers will detect it and display an error message. Firefox displays:

Firefox has detected that the server is redirecting the request for this address in a way that will never terminate.

…while Chrome displays:

This Webpage has a redirect loop

In both cases, the user can’t do much (unless corruption is happening on their side, like a mismatch of cache or cookies).

It is important to avoid redirection loops, as they completely break the user experience.


Как исправить ошибки URL в Google webmasters? Переадресация на другую страницу через .htaccess

Исправляем ошибки с Урл переадресацией

Если ваш сайт отправлен в инструменты вебмастеров от Google (что обязательно нужно сделать), то Гугл показывает «Текущий статус» — это статистика сканирования, ошибки при обходе сайта роботом и другое.

Причём очень часто там отображено количество т.н. ошибок URL. Связаны они, в первую очередь, с кодом ответа 404 («не найдено») и возникают по двум причинам:

  1. По невнимательности владельца сайта (или того, кто размещает там контент). Например, при публикации одной статьи была проставлена неправильная ссылка на другую статью — вместо .html написали .htm и др.
  2. По невнимательности тех, кто ссылается на этот сайт извне — люди часто ошибаются.

Данные ошибки неплохо бы исправить — также по двум причинам:

  1. Вполне возможно, что их отсутствие улучшит качество вашего сайта в «глазах» Google (траст и всё такое..);
  2. Сделав это, мы исключим ошибку 404 и поэтому прибавим PageRank страницам сайта.

Как узнать об ошибках URL в Google

Здесь всё просто: на главной странице аккаунта вебмастера следует выбрать сайт и на открывшейся странице можно увидеть количество ошибок (если есть, что часто бывает). А затем следует кликнуть «Ошибки сканирования»:

На открывшейся странице можно уже подробнее посмотреть на эти «пробемные» ссылки. Просто щёлкаем на любой URL из списка:

Сведения об ошибке URL в Google

— тут можно посмотреть, нет ли этой ссылки в XML-карте сайта ( в файле Sitemap ), а также узнать, какая страница ссылается данной ссылкой на ваш сайт ( Ссылающиеся домены ) — это может быть страница вашего же сайта.

Как исправить ошибки URL

Внутренние ссылки

Если что-то не так с внутренними ссылками, то желательно их подправить (хорошо, что Гугл сам укажет на страницу с ошибкой). Если сайт создавали на WordPress, то поискать такие URL (битые ссылки) поможет плагин Broken Link Checker. Смотрите о его настройках в видео про поиск битых ссылок.

Внешние ссылки и переадресация на другую страницу через .htaccess

Естественно, ссылки на чужих сайтах исправить едва ли получится, поэтому следует сделать так, чтобы при переходе по конкретной внешней ссылке происходил бы 301-й редирект на существующую страницу вашего сайта. Осуществить 301-й редирект несложно, и именно такой вариант перенаправления (не 302) нужен для переноса PageRank.

В данном случае проще всего сделать 301-й редирект через файл .htaccess. В папке сайта практически всегда есть этот файл (если нет, то надо создать)

Открываем файл .htaccess для редактирования и вставляем в него такую строчку:

Redirect 301 /wrong-URL http://your-site/new-URL

Вместо /wrong-URL указываем «несуществующий» адрес, который нашёл Google. Причём указать надо именно как относительную ссылку. Ну а вместо http://your-site/new-URL пишем полный адрес (в формате URI) той страницы, на которую попадут и люди и роботы после перехода по неправильному адресу.

К примеру, на ведут какие-то непонятные ссылки, вроде . Я решил все эти адреса перенаправить на страницу со списком статей — . Поэтому можно прописать так:

Делаем переадресацию на другую страницу через .htaccess

Вот и всё. Теперь в аккаунте Google webmasters надо поставить галочки слева от URL с ошибками и щёлкнуть «Отметить как исправленные».

Таким образом, мы добавили PageRank (хоть он и теряется при 301-м редиректе) своему сайту, а также улучшили сайт с точки зрения юзабилити — при переходе посетителя по «плохому» URL произойдёт переадресация на нужную страницу, а не страницу с ошибкой 404. Как результат — небольшое улучшение поведенческих факторов.

  • Что такое Google Ads и как это работает. . ше объявление. 2. Менять само рекламное объявление. И тестировать их с помощью А/Б
  • Яндекс: ну так отменил или нет? . го марта 2014 так и не ясно до сих пор, отменил Яндекс учёт ссылок для «коммерции»
  • О создании контентных сайтов Почему бы не начать новый год с создания нового сайта? В данной статье я п.
  • Как вывести в WordPress похожие записи. Плагин Related Posts, настройки Нередко на wordpress-блогах можно увидеть такую картину, когда ниже полной.
  • — обзор плагина кэширования для WordPress Иногда вдруг начинает хотеться чего-нибудь новенького. Не так.

У меня как раз такая проблема! Сайт на движке вордпресса и много статей было написано под постоянной ссылкой не произвольно, потом я поменял на произвольный и теперь много страниц в гугле не сканируется как исправить не знаю пробовал ваш совет но что то не то или я не так делаю не знаю! Потом у меня много рубрик с помощью которых я делаю меню но при этом URL получается очень длинным как то не смотрится, может что посоветуете?

А у меня такая проблема у меня в последнее время начали поступать из вебмастреа сообщения о том что много 404 ошыбок. Но самоестранноечто ети страницы есть. Просто по каким то причинам гугл не смог получить к ним доступ…

Возможно, для человека — они есть, но роботу Гугла сервер выдаёт код 404.

Очень понятная статья про ошибки сканирования. Спасибо! И вопросик еще задам: получается, что 301 редирект нужно прописывать для КАЖДОЙ ссылки в отдельности?
У меня их около 100!! (интернетовские умельцы напечатали ссылок на мой блог ошибками)))

В общем-то да, для каждой.
Но если в каждой ссылке вы можете выделить какую-нибудь общую часть (например, везде неправильно указано окончание адреса — вместо «.html» прописано «.htm»), то можно использовать шаблоны.
Но тема требует дополнительного изучения:

Доброго времени суток. 8) Сделал редирект через файл — .htaccess, все работает.


1. Здравствуйте! В статье говорится, что «..нужно указать надо именно как относительную ссылку». Пройдя но ней нахожу запись… «Чтобы все документы сайта всегда были найдены, предпочтительно использовать абсолютные ссылки». Так абсолютную или относительную? Или можно напрямую использовать «неправильную» ссылку, найденную Google.
2.Покажите, пожалуйста, относительную ссылку на примере «неправильной» ссылки, найденной Google:

Не очень ясно, что имеете в виду. Но вроде бы вы не понимаете, что такое относительная ссылка. — абсолютная
/articles/ — относительная

Спасибо,Петр. Оказывается относительную ссылку я вставляю в форму «Просмотреть как Googlebot» в разделе «Сканирование» Search Console.

Я кардинально поменял сайт (шаблон, удалил новости, сменил категории). И, уже спустя 2 года, до сих пор, приходят ошибки URL 404 от старой версии сайта. Не повредит ли то, если я буду перенаправлять URL 404 на новые новости схожие по запросу?
(ошибок набралось свыше 300 штук). =)

Сообщать мне о новых комментариях к этой статье


Читайте также:  Connection failed error during jrmp connection establishment
Оцените статью