|
8 | 8 | } |
9 | 9 |
|
10 | 10 | :8080 { |
11 | | - # Handle Socket.IO separately - rewrite path for WebSocket upgrade |
12 | | - handle /codimd/socket.io/* { |
| 11 | + # Enable logging for debugging |
| 12 | + log { |
| 13 | + output stdout |
| 14 | + level INFO |
| 15 | + format console |
| 16 | + } |
| 17 | + |
| 18 | + # Route order matters! Use route directive for proper matching |
| 19 | + |
| 20 | + # 1. Redirect exact /codimd to /codimd/ |
| 21 | + route { |
| 22 | + @codimd_exact path_regexp ^/codimd$ |
| 23 | + redir @codimd_exact /codimd/ 301 |
| 24 | + } |
| 25 | + |
| 26 | + # 2. Redirect root to /codimd/ |
| 27 | + route { |
| 28 | + @root path_regexp ^/$ |
| 29 | + redir @root /codimd/ 301 |
| 30 | + } |
| 31 | + |
| 32 | + # 3. Handle Socket.IO - rewrite path for WebSocket upgrade |
| 33 | + route /codimd/socket.io/* { |
13 | 34 | uri strip_prefix /codimd |
14 | 35 | reverse_proxy localhost:3000 { |
15 | | - # WebSocket support |
16 | | - header_up X-Forwarded-For {remote_host} |
17 | | - header_up X-Forwarded-Proto {scheme} |
18 | | - header_up X-Forwarded-Host {host} |
19 | 36 | header_up X-Forwarded-Prefix /codimd |
20 | 37 | } |
21 | 38 | } |
22 | 39 |
|
23 | | - # Handle all /codimd/* requests |
24 | | - handle /codimd/* { |
| 40 | + # 4. Handle all other /codimd/* requests |
| 41 | + route /codimd/* { |
25 | 42 | # Strip /codimd prefix before forwarding |
26 | 43 | uri strip_prefix /codimd |
27 | 44 |
|
28 | 45 | # Reverse proxy to app running at root |
29 | 46 | reverse_proxy localhost:3000 { |
30 | | - # Pass headers for proxy awareness |
31 | | - header_up X-Forwarded-For {remote_host} |
32 | | - header_up X-Forwarded-Proto {scheme} |
33 | | - header_up X-Forwarded-Host {host} |
34 | 47 | header_up X-Forwarded-Prefix /codimd |
35 | 48 | } |
36 | 49 | } |
37 | | - |
38 | | - # Handle /codimd without trailing slash |
39 | | - handle_path /codimd { |
40 | | - redir /codimd/ 301 |
41 | | - } |
42 | | - |
43 | | - # Redirect root to /codimd/ |
44 | | - handle / { |
45 | | - redir /codimd/ 301 |
46 | | - } |
47 | | - |
48 | | - # Enable logging for debugging |
49 | | - log { |
50 | | - output stdout |
51 | | - level DEBUG |
52 | | - format console |
53 | | - } |
54 | 50 | } |
0 commit comments