Bird
Raised Fist0
Nginxdevops~5 mins

Rewrite directive in Nginx - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the rewrite directive in nginx?
The rewrite directive changes the requested URL before nginx processes it further. It helps redirect or modify URLs based on patterns.
Click to reveal answer
beginner
How do you write a basic rewrite rule to redirect /old to /new?
Use rewrite ^/old$ /new permanent; to redirect requests from /old to /new with a permanent redirect.
Click to reveal answer
intermediate
What does the last flag do in a rewrite rule?
The last flag stops processing current rewrite rules and restarts location search with the new rewritten URL.
Click to reveal answer
intermediate
Explain the difference between permanent and redirect flags in rewrite.
permanent sends a 301 status (permanent redirect), while redirect sends a 302 status (temporary redirect).
Click to reveal answer
intermediate
What happens if you omit flags in a rewrite directive?
If no flag is given, nginx uses last by default, rewriting the URL and restarting location search.
Click to reveal answer
Which flag in the nginx rewrite directive causes a permanent redirect?
Abreak
Blast
Cpermanent
Dredirect
What does the rewrite ^/old$ /new last; directive do?
ARedirects /old to /new with a 302 temporary redirect
BReturns a 404 error for /old
CStops processing rewrite rules without redirect
DRedirects /old to /new and restarts location search
If you want to temporarily redirect a URL in nginx, which flag should you use?
Apermanent
Bredirect
Clast
Dbreak
What is the default behavior if no flag is specified in a rewrite directive?
AIt uses the last flag
BIt uses the break flag
CIt uses the redirect flag
DIt causes an error
Which directive is used to modify URLs before nginx processes them?
Arewrite
Bproxy_pass
Creturn
Dinclude
Describe how the nginx rewrite directive works and when you would use it.
Think about changing URLs before nginx serves content.
You got /4 concepts.
    Explain the difference between the 'last' and 'break' flags in nginx rewrite rules.
    Consider how nginx continues or stops processing after rewriting.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of the rewrite directive in nginx?
      easy
      A. To limit the number of client connections
      B. To change URLs based on patterns for redirection or rewriting
      C. To configure SSL certificates for secure connections
      D. To serve static files directly from the server

      Solution

      1. Step 1: Understand the role of rewrite directive

        The rewrite directive is used to modify URLs based on matching patterns.
      2. Step 2: Identify its main use

        It helps redirect or rewrite URLs without changing the visible link to the user.
      3. Final Answer:

        To change URLs based on patterns for redirection or rewriting -> Option B
      4. Quick Check:

        Rewrite directive = URL modification [OK]
      Hint: Rewrite changes URLs by pattern matching [OK]
      Common Mistakes:
      • Confusing rewrite with serving static files
      • Thinking rewrite manages SSL or security
      • Assuming rewrite limits connections
      2. Which of the following is the correct syntax for a rewrite directive in nginx?
      easy
      A. rewrite ^/oldpath/(.*)$ /newpath/$1 permanent;
      B. rewrite /oldpath/(.*) /newpath/$1 redirect
      C. rewrite ^/oldpath/(.*)$ /newpath/$1 301
      D. rewrite /oldpath/(.*)$ /newpath/$1 permanent

      Solution

      1. Step 1: Check the rewrite syntax format

        The correct syntax is: rewrite <pattern> <replacement> <flag>;
      2. Step 2: Identify the correct flag and semicolon usage

        The flag must be a recognized keyword like 'permanent' and the line must end with a semicolon.
      3. Final Answer:

        rewrite ^/oldpath/(.*)$ /newpath/$1 permanent; -> Option A
      4. Quick Check:

        Correct syntax = rewrite + pattern + replacement + flag + semicolon [OK]
      Hint: Rewrite ends with semicolon and uses flags like permanent [OK]
      Common Mistakes:
      • Omitting the semicolon at the end
      • Using numeric flags instead of keywords
      • Missing caret (^) in regex pattern
      3. Given this nginx config snippet:
      rewrite ^/blog/(.*)$ /newblog/$1 last;

      What happens when a user visits /blog/article1?
      medium
      A. The user is redirected to /newblog/article1 with a 301 status
      B. The URL changes to /newblog/article1 and nginx restarts processing
      C. The URL stays /blog/article1 but content from /newblog/article1 is served
      D. An error occurs because 'last' is an invalid flag

      Solution

      1. Step 1: Understand the 'last' flag in rewrite

        The 'last' flag performs an internal rewrite: nginx changes the URI internally and restarts location processing with the new URI. The browser URL remains unchanged.
      2. Step 2: Apply to the example URL

        Visiting /blog/article1 matches the pattern, rewrites internally to /newblog/article1, and serves content from there without changing the visible URL.
      3. Final Answer:

        The URL stays /blog/article1 but content from /newblog/article1 is served -> Option C
      4. Quick Check:

        'last' flag = internal rewrite, URL unchanged [OK]
      Hint: 'last' flag restarts processing with new URL [OK]
      Common Mistakes:
      • Confusing 'last' with external redirect
      • Thinking URL visible to user changes
      • Assuming 'last' flag causes error
      4. Identify the error in this nginx rewrite directive:
      rewrite ^/old/(.*)$ /new/$1 permanent
      medium
      A. Missing semicolon at the end of the directive
      B. Incorrect regex pattern syntax
      C. Invalid flag 'permanent' used
      D. Rewrite directive cannot use variables like $1

      Solution

      1. Step 1: Check syntax completeness

        Every nginx directive must end with a semicolon (;). This line is missing it.
      2. Step 2: Validate other parts

        The regex pattern and flag 'permanent' are correct, and $1 is valid for capturing groups.
      3. Final Answer:

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

        Missing semicolon = syntax error [OK]
      Hint: Always end rewrite lines with a semicolon [OK]
      Common Mistakes:
      • Forgetting semicolon at line end
      • Misunderstanding regex syntax
      • Thinking $1 is invalid in rewrite
      5. You want to redirect all requests from /shop/ to /store/ permanently, but only if the URL ends exactly with /shop/ (no extra path after). Which rewrite directive achieves this?
      hard
      A. rewrite ^/shop/(.*)$ /store/$1 permanent;
      B. rewrite ^/shop$ /store/ permanent;
      C. rewrite /shop/ /store/ permanent;
      D. rewrite ^/shop/$ /store/ permanent;

      Solution

      1. Step 1: Match only exact /shop/ URL

        The regex ^/shop/$ matches exactly '/shop/' with nothing after it.
      2. Step 2: Redirect permanently to /store/

        The replacement is /store/ with the 'permanent' flag for 301 redirect.
      3. Final Answer:

        rewrite ^/shop/$ /store/ permanent; -> Option D
      4. Quick Check:

        Exact match with ^/shop/$ and permanent redirect [OK]
      Hint: Use ^ and $ to match exact URL in rewrite [OK]
      Common Mistakes:
      • Using (.*) which matches extra paths
      • Omitting anchors ^ and $
      • Incorrect regex without end anchor
      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