Bird
Raised Fist0
Nginxdevops~5 mins

Rewrite flags (last, break, redirect, permanent) in Nginx - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the last flag do in an nginx rewrite rule?
The last flag stops processing the current set of rewrite directives and restarts the location search with the new URI. It is like telling nginx to start fresh with the rewritten URL.
Click to reveal answer
beginner
Explain the purpose of the break flag in nginx rewrite rules.
The break flag stops processing further rewrite directives in the current location block but does not restart the location search. It keeps nginx in the current location with the rewritten URI.
Click to reveal answer
intermediate
What is the difference between redirect and permanent flags in nginx rewrites?
Both redirect and permanent send an HTTP redirect to the client. redirect sends a temporary 302 redirect, while permanent sends a permanent 301 redirect.
Click to reveal answer
intermediate
When should you use the permanent flag in nginx rewrite rules?
Use permanent when you want to tell browsers and search engines that the resource has moved permanently to a new URL. This helps with SEO and caching.
Click to reveal answer
beginner
What happens if you omit flags in an nginx rewrite directive?
If you omit flags, nginx uses the default behavior which is similar to last. It restarts the location search with the rewritten URI.
Click to reveal answer
Which nginx rewrite flag restarts the location search with the new URI?
Apermanent
Bbreak
Credirect
Dlast
What HTTP status code does the permanent flag send?
A302
B301
C404
D500
Which flag stops rewrite processing but does NOT restart location search?
Abreak
Blast
Credirect
Dpermanent
What is the default behavior if no flag is specified in a rewrite directive?
Alast
Bredirect
Cbreak
Dpermanent
Which flag sends a temporary redirect to the client?
Alast
Bbreak
Credirect
Dpermanent
Describe the behavior and use cases of each nginx rewrite flag: last, break, redirect, and permanent.
Think about how nginx handles the rewritten URL and what response it sends to the client.
You got /4 concepts.
    Explain why you might choose the 'break' flag over 'last' in an nginx rewrite rule.
    Consider how nginx processes location blocks after rewriting.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the last flag do in an nginx rewrite directive?
      easy
      A. Stops processing the current location and restarts the rewrite phase with the new URI
      B. Sends a temporary redirect (HTTP 302) to the client
      C. Stops processing the rewrite directives and continues with the current location
      D. Sends a permanent redirect (HTTP 301) to the client

      Solution

      1. Step 1: Understand the last flag behavior

        The last flag tells nginx to stop processing current rewrite directives and restart the rewrite phase with the new URI.
      2. Step 2: Compare with other flags

        Unlike break which stops rewriting internally, last restarts processing, and unlike redirect or permanent which send redirects, it does not send a client redirect.
      3. Final Answer:

        Stops processing the current location and restarts the rewrite phase with the new URI -> Option A
      4. Quick Check:

        last = restart rewrite phase [OK]
      Hint: Remember: last restarts rewrite, break stops internally [OK]
      Common Mistakes:
      • Confusing last with break flag
      • Thinking last sends a redirect
      • Mixing last with permanent redirect
      2. Which of the following is the correct syntax to perform a permanent redirect in nginx using the rewrite directive?
      easy
      A. rewrite ^/old$ /new break;
      B. rewrite ^/old$ /new last;
      C. rewrite ^/old$ /new permanent;
      D. rewrite ^/old$ /new redirect;

      Solution

      1. Step 1: Identify the flag for permanent redirect

        The permanent flag sends an HTTP 301 status code indicating a permanent redirect.
      2. Step 2: Check syntax correctness

        The syntax rewrite ^/old$ /new permanent; correctly applies the permanent redirect flag.
      3. Final Answer:

        rewrite ^/old$ /new permanent; -> Option C
      4. Quick Check:

        Permanent redirect uses permanent flag [OK]
      Hint: Permanent redirect uses 'permanent' flag at end [OK]
      Common Mistakes:
      • Using 'last' or 'break' instead of 'permanent' for redirects
      • Omitting the semicolon at the end
      • Confusing 'redirect' with 'permanent'
      3. Given the nginx configuration snippet:
      location /test {
        rewrite ^/test/(.*)$ /new/$1 redirect;
      }

      What will happen when a client requests /test/page?
      medium
      A. The client will receive a 301 permanent redirect to /new/page
      B. The rewrite will restart processing with the new URI /new/page
      C. The request will be internally rewritten to /new/page without redirect
      D. The client will receive a 302 temporary redirect to /new/page

      Solution

      1. Step 1: Understand the redirect flag

        The redirect flag sends an HTTP 302 temporary redirect to the client.
      2. Step 2: Analyze the rewrite rule

        The rewrite matches /test/page and rewrites it to /new/page with a temporary redirect.
      3. Final Answer:

        The client will receive a 302 temporary redirect to /new/page -> Option D
      4. Quick Check:

        redirect = 302 temporary redirect [OK]
      Hint: redirect flag means 302 temporary redirect [OK]
      Common Mistakes:
      • Confusing redirect with permanent
      • Thinking redirect rewrites internally
      • Assuming last or break flags here
      4. You have this nginx rewrite rule:
      rewrite ^/oldpath/(.*)$ /newpath/$1 last

      But it causes a 500 Internal Server Error. What is the likely problem?
      medium
      A. Missing semicolon at the end of the rewrite directive
      B. Using 'last' flag instead of 'break' causes infinite loop
      C. The regex pattern is invalid
      D. Rewrite directive must be inside a location block

      Solution

      1. Step 1: Check syntax of rewrite directive

        Every nginx directive must end with a semicolon. The given rewrite lacks a semicolon.
      2. Step 2: Understand error cause

        Missing semicolon causes nginx to fail parsing config, leading to 500 error.
      3. Final Answer:

        Missing semicolon at the end of the rewrite directive -> Option A
      4. Quick Check:

        Missing semicolon = syntax error = 500 error [OK]
      Hint: Always end rewrite directives with semicolon [OK]
      Common Mistakes:
      • Assuming last flag causes infinite loop
      • Ignoring missing semicolon syntax errors
      • Thinking regex pattern is wrong without checking
      5. You want to rewrite URLs starting with /app to /app/index.html internally without redirecting the client, and stop further rewrite processing. Which rewrite directive and flag should you use?
      hard
      A. rewrite ^/app$ /app/index.html last;
      B. rewrite ^/app$ /app/index.html break;
      C. rewrite ^/app$ /app/index.html redirect;
      D. rewrite ^/app$ /app/index.html permanent;

      Solution

      1. Step 1: Identify internal rewrite without client redirect

        The break flag stops rewrite processing and serves the rewritten URI internally without redirecting the client.
      2. Step 2: Match requirement to flag

        Using break with the rewrite stops further rewrites and serves /app/index.html internally.
      3. Final Answer:

        rewrite ^/app$ /app/index.html break; -> Option B
      4. Quick Check:

        break = internal rewrite stop [OK]
      Hint: Use break to rewrite internally and stop further rewrites [OK]
      Common Mistakes:
      • Using last which restarts rewrite phase
      • Using redirect or permanent which send client redirects
      • Not stopping rewrite processing causing unexpected behavior
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard