WebOrbiton
v3.0.0.0

FlatlyPage

52 lines · 1.0 KB
  1. <?php
  2. header('Content-Type: text/plain; charset=UTF-8');
  3. ​
  4. $configPath = __DIR__ . '/data/sitemap-config.php';
  5. if (!is_file($configPath)) {
  6. $configPath = __DIR__ . '/data/default-sitemap-config.php';
  7. }
  8. ​
  9. $config = [
  10. 'sitemap' => false,
  11. 'website_domain' => '',
  12. ];
  13. ​
  14. if (is_file($configPath)) {
  15. $loaded = require $configPath;
  16. if (is_array($loaded)) {
  17. $config = array_merge($config, $loaded);
  18. }
  19. }
  20. ​
  21. echo "User-agent: *\n";
  22. echo "Allow: /\n";
  23. ​
  24. $disallowPaths = [
  25. '/admin/',
  26. '/config/',
  27. '/data/',
  28. '/private/',
  29. '/tmp/',
  30. '/cache/',
  31. '/logs/',
  32. '/vendor/',
  33. '/tests/',
  34. '/.env',
  35. '/composer.json',
  36. '/composer.lock',
  37. '/themes/',
  38. ];
  39. ​
  40. foreach ($disallowPaths as $path) {
  41. echo "Disallow: {$path}\n";
  42. }
  43. ​
  44. if ($config['sitemap'] === true && !empty($config['website_domain'])) {
  45. $domain = trim($config['website_domain']);
  46. if (!preg_match('#^https?://#i', $domain)) {
  47. $domain = 'https://' . $domain;
  48. }
  49. $domain = rtrim($domain, '/');
  50. echo "\nSitemap: {$domain}/sitemap\n";
  51. }
  52. ​