Skip to content

3xx Redirects

301 Moved Permanently

The page has a new permanent URL. Browsers and search engines remember it and pass the ranking to the new URL.

When you see it

  • A changed slug or domain, http → https, www ↔ non-www.
  • Apache / LiteSpeed rules in .htaccess or a redirect in the app.

What to do

  1. 1

    Use 301 for permanent moves so search engines transfer the old URL's ranking.

  2. 2

    Avoid chains (A → B → C): point every old URL straight to the final one.

  3. 3

    Test with curl -I https://example.com/old-url to see the status and Location.

In Laravel

return redirect()->to($url, 301); or Route::permanentRedirect('/old', '/new'); Use the .htaccess generator tool for server-level rules.

Check the status of a URL

The first line of the response shows the status code; -L follows redirects and shows each step.

curl -I https://example.com/page
curl -IL https://example.com/old-page

Frequently asked questions

What does HTTP 301 mean?

The page has a new permanent URL. Browsers and search engines remember it and pass the ranking to the new URL.

How does Laravel handle 301?

return redirect()->to($url, 301); or Route::permanentRedirect('/old', '/new'); Use the .htaccess generator tool for server-level rules.

Get new articles in your inbox

Practical tutorials and deep dives, about once a week. No spam, unsubscribe anytime.

Privacy policy

Add DEV Talk to your Home Screen

  1. 1 Tap the Share button in Safari's toolbar.
  2. 2 Scroll down and tap Add to Home Screen.
  3. 3 Tap Add. Open it from the Home Screen to read like an app and to turn on notifications with the bell.

We use cookies to improve your experience and analyze traffic. By continuing, you agree to our Privacy Policy.