route.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. call_user_func(function() { // to prevent variable scope leak
  3. Route::pattern('id', '[1-9][0-9]{0,9}');
  4. Route::pattern('blog_username', '[a-zA-Z0-9_\-]{1,20}');
  5. switch (UOJConfig::$data['switch']['blog-domain-mode']) {
  6. case 1:
  7. $domain = '{blog_username}.'.UOJConfig::$data['web']['main']['host'];
  8. $prefix = '';
  9. break;
  10. # case 2:
  11. # $domain = UOJConfig::$data['web']['blog']['host'];
  12. # $prefix = '/{blog_username}';
  13. # break;
  14. # case 3:
  15. # $domain = UOJConfig::$data['web']['main']['host'];
  16. # $prefix = '/blog/{blog_username}';
  17. # break;
  18. }
  19. Route::group([
  20. 'domain' => UOJConfig::$data['web']['blog']['host']
  21. ], function() {
  22. Route::any("/", '/blogs.php');
  23. Route::any("/blogs/{id}", '/blog_show.php');
  24. Route::any("/post/{id}", '/blog_show.php');
  25. }
  26. );
  27. Route::group([
  28. 'domain' => $domain,
  29. 'onload' => function() {
  30. UOJContext::setupBlog();
  31. }
  32. ], function() use ($prefix) {
  33. Route::any("$prefix/", '/subdomain/blog/archive.php');
  34. Route::any("$prefix/archive", '/subdomain/blog/archive.php');
  35. Route::any("$prefix/aboutme", '/subdomain/blog/aboutme.php');
  36. Route::any("$prefix/click-zan", '/click_zan.php');
  37. Route::any("$prefix/blogs/{id}", '/blog_show.php');
  38. Route::any("$prefix/post/{id}", '/subdomain/blog/blog.php');
  39. Route::any("$prefix/slide/{id}", '/subdomain/blog/slide.php');
  40. Route::any("$prefix/post/(?:{id}|new)/write", '/subdomain/blog/blog_write.php');
  41. Route::any("$prefix/slide/(?:{id}|new)/write", '/subdomain/blog/slide_write.php');
  42. Route::any("$prefix/post/{id}/delete", '/subdomain/blog/blog_delete.php');
  43. }
  44. );
  45. });