-
Notifications
You must be signed in to change notification settings - Fork 0
/
.htaccess
56 lines (49 loc) · 2.74 KB
/
.htaccess
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# Access control
<FilesMatch "\.(ht|git).*">
Order deny,allow
Deny from all
</FilesMatch>
# provide natural, clean URLs
RewriteEngine On
# main page
RewriteRule ^$ %{ENV:PBROOT}/browse [R,L]
RewriteRule ^browse$ pages/browse.php [L]
RewriteRule ^logon$ lib/logon.php [L,QSA]
RewriteRule ^problemlist$ lib/ajax.php?query=problemlist [L,QSA]
# content pages and submitting
RewriteRule ^problem$ pages/edit/problem.php [L]
RewriteRule ^problem/([0-9]+)$ pages/view/problem.php?id=$1 [L]
RewriteRule ^problem/([0-9]+)/edit$ pages/edit/problem.php?id=$1 [L]
RewriteRule ^problem/([0-9]+)/solution$ pages/edit/solution.php?problem_id=$1 [L]
RewriteRule ^problem/([0-9]+)/solution/([0-9]+)$ pages/edit/solution.php?id=$2&problem_id=$1 [L]
RewriteRule ^problem/([0-9]+)/solution/([0-9]+)/picture-([0-9]+)$ lib/ajax.php?query=picture&solution_id=$2&id=$3 [L]
RewriteRule ^problem/([0-9]+)/evaluate$ pages/edit/eval.php?id=$1 [L]
RewriteRule ^problem/([0-9]+)/settag$ lib/edit/misc.php?write=problemtag&id=$1 [L]
RewriteRule ^problem/([0-9]+)/publish$ lib/edit/publish.php?id=$1 [L,QSA]
RewriteRule ^submit/$ lib/edit/problem.php [L,QSA]
RewriteRule ^submit/([0-9]+)$ lib/edit/problem.php?id=$1 [L,QSA]
RewriteRule ^submit/([0-9]+)/$ lib/edit/solution.php?problem_id=$1 [L,QSA]
RewriteRule ^submit/([0-9]+)/([0-9]+)$ lib/edit/solution.php?id=$2&problem_id=$1 [L,QSA]
RewriteRule ^submit/([0-9]+)/eval$ lib/edit/eval.php?id=$1 [L,QSA]
# user management
RewriteRule ^users$ pages/view/users.php [L]
RewriteRule ^users/new$ lib/edit/user.php [L,QSA]
RewriteRule ^users/([0-9]+)$ pages/view/user.php?id=$1 [L]
RewriteRule ^users/([0-9]+)/edit$ lib/edit/user.php?id=$1 [L,QSA]
RewriteRule ^users/([0-9]+)/changepw$ lib/edit/user.php?id=$1 [L,QSA]
RewriteRule ^users/([0-9]+)/delete$ lib/edit/user.php?id=$1&delete [L,QSA]
# tag management
RewriteRule ^tags$ pages/edit/tagpanel.php [L]
RewriteCond %{HTTP_ACCEPT} =application/json
RewriteRule ^tags/(private/)?([_0-9A-Za-z]+)$ lib/ajax.php?query=tag&name=$1$2 [L,QSA]
RewriteRule ^tags/(private/)?([_0-9A-Za-z]+)$ pages/view/tag.php?name=$1$2 [L,QSA]
RewriteRule ^tag$ lib/edit/misc.php?write=tag [L,QSA]
# proposer queries
RewriteCond %{HTTP_ACCEPT} =application/json
RewriteRule ^proposers/([^/]+)$ lib/ajax.php?query=proposer&name=$1 [L,QSA]
RewriteRule ^proposers/([^/]+)$ pages/view/proposer.php?name=$1 [L,QSA]
RewriteRule ^proposers/([^/]+)/([^/]+)$ pages/view/proposer.php?name=$1&location=$2 [L,QSA]
# issue
RewriteRule ^issues/([0-9]{4})/(([1-9]|0[1-9]|1[0-2]))$ pages/view/issue.php?year=$1&month=$2 [L]
RewriteRule ^issues/([0-9]{4})/(([1-9]|0[1-9]|1[0-2]))/problems$ lib/ajax.php?query=issue_problems&year=$1&month=$2 [L]
RewriteRule ^issues/([0-9]{4})/(([1-9]|0[1-9]|1[0-2]))/solutions$ llib/ajax.php?query=issue_solutions&year=$1&month=$2 [L]