mirror of
https://github.com/Shineii86/AniKotoAPI.git
synced 2026-10-22 02:45:10 +00:00
fix: clean URLs — /tos and /privacy instead of /tos.html and /privacy.html
- Added Express routes for /tos and /privacy - Updated all internal links (index.html, privacy.html, tos.html) - Updated sitemap.xml URLs - Updated README and docs architecture
This commit is contained in:
@@ -14,6 +14,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- `docs/streaming.md` — Streaming flow guide (3-step with real data)
|
||||
- `docs/examples.md` — Code examples in cURL, JavaScript, Python, Node.js (all tested)
|
||||
- `docs/architecture.md` — Project structure, tech stack, design decisions
|
||||
|
||||
### Fixed
|
||||
- Clean URLs: `/tos` and `/privacy` instead of `/tos.html` and `/privacy.html`
|
||||
- Added Express routes for clean URL serving
|
||||
- `docs/architecture.md` — Project structure, tech stack, design decisions
|
||||
|
||||
### Fixed
|
||||
|
||||
@@ -292,11 +292,11 @@ AniKotoAPI/
|
||||
├── 📂 public/ # 🌐 Static files
|
||||
│ ├── 📄 index.html # 📖 Premium landing page (SVG icons, live console)
|
||||
│ ├── 📄 404.html # ❌ Custom 404 error page (glitch animation)
|
||||
│ ├── 📄 tos.html # 📋 Terms of Service page
|
||||
│ ├── 📄 privacy.html # 🔒 Privacy Policy page
|
||||
│ ├── 📄 tos.html # 📋 Terms of Service (served at /tos)
|
||||
│ ├── 📄 privacy.html # 🔒 Privacy Policy (served at /privacy)
|
||||
│ ├── 📄 manifest.json # 📱 PWA manifest (theme: #A855F7)
|
||||
│ ├── 📄 robots.txt # 🤖 Crawler directives
|
||||
│ ├── 📄 sitemap.xml # 🗺️ Sitemap (4 pages)
|
||||
│ ├── 📄 sitemap.xml # 🗺️ Sitemap (4 pages: /, /tos, /privacy, /api)
|
||||
│ ├── 📄 og-image.svg # 🖼️ SVG Open Graph image
|
||||
│ │
|
||||
│ ├── 📂 docs/ # 📚 API documentation
|
||||
|
||||
@@ -14,10 +14,10 @@ AniKotoAPI/
|
||||
│ ├── 404.html # Glitch animation error page
|
||||
│ ├── manifest.json # PWA manifest (theme: #A855F7)
|
||||
│ ├── robots.txt # Crawler directives
|
||||
│ ├── sitemap.xml # 4 pages (home, api, privacy, tos)
|
||||
│ ├── sitemap.xml # 4 pages (/, /tos, /privacy, /api)
|
||||
│ ├── og-image.svg # SVG Open Graph image
|
||||
│ ├── privacy.html # Privacy policy
|
||||
│ └── tos.html # Terms of service
|
||||
│ ├── privacy.html # Privacy policy (served at /privacy)
|
||||
│ └── tos.html # Terms of service (served at /tos)
|
||||
│
|
||||
├── docs/ # API documentation
|
||||
│ ├── index.md # Overview, quick start, features
|
||||
|
||||
+2
-2
@@ -538,8 +538,8 @@ fetch("https://anikototvapi.vercel.app/api")
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h4>Legal</h4>
|
||||
<a href="/privacy.html">Privacy Policy</a>
|
||||
<a href="/tos.html">Terms of Service</a>
|
||||
<a href="//privacy">Privacy Policy</a>
|
||||
<a href="//tos">Terms of Service</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-bottom">
|
||||
|
||||
+1
-1
@@ -78,6 +78,6 @@
|
||||
<h2>8. Contact</h2>
|
||||
<p>For questions about this Privacy Policy, open an issue at <a href="https://github.com/Shineii86/AniKotoAPI/issues" target="_blank">github.com/Shineii86/AniKotoAPI/issues</a>.</p>
|
||||
</div>
|
||||
<footer>© 2026 AniKotoAPI · <a href="/" style="color:var(--purple)">Home</a> · <a href="/tos.html" style="color:var(--purple)">Terms</a></footer>
|
||||
<footer>© 2026 AniKotoAPI · <a href="/" style="color:var(--purple)">Home</a> · <a href="//tos" style="color:var(--purple)">Terms</a></footer>
|
||||
</body>
|
||||
</html>
|
||||
+2
-2
@@ -13,13 +13,13 @@
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://anikototvapi.vercel.app/privacy.html</loc>
|
||||
<loc>https://anikototvapi.vercel.app//privacy</loc>
|
||||
<lastmod>2026-06-08</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.3</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://anikototvapi.vercel.app/tos.html</loc>
|
||||
<loc>https://anikototvapi.vercel.app//tos</loc>
|
||||
<lastmod>2026-06-08</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.3</priority>
|
||||
|
||||
+1
-1
@@ -89,6 +89,6 @@
|
||||
<h2>13. Contact</h2>
|
||||
<p>For questions about these Terms, open an issue at <a href="https://github.com/Shineii86/AniKotoAPI/issues" target="_blank">github.com/Shineii86/AniKotoAPI/issues</a>.</p>
|
||||
</div>
|
||||
<footer>© 2026 AniKotoAPI · <a href="/" style="color:var(--purple)">Home</a> · <a href="/privacy.html" style="color:var(--purple)">Privacy</a></footer>
|
||||
<footer>© 2026 AniKotoAPI · <a href="/" style="color:var(--purple)">Home</a> · <a href="//privacy" style="color:var(--purple)">Privacy</a></footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -74,6 +74,19 @@ app.use((req, res, next) => {
|
||||
// NOTE: redirect: false prevents automatic redirects to index.html
|
||||
app.use(express.static(publicDir, { redirect: false }));
|
||||
|
||||
// ══════════════════════════════════════════════════════════════
|
||||
// CLEAN URL ROUTES
|
||||
// ══════════════════════════════════════════════════════════════
|
||||
|
||||
// Serve HTML files without .html extension
|
||||
app.get("/tos", (req, res) => {
|
||||
res.sendFile(path.join(publicDir, "tos.html"));
|
||||
});
|
||||
|
||||
app.get("/privacy", (req, res) => {
|
||||
res.sendFile(path.join(publicDir, "privacy.html"));
|
||||
});
|
||||
|
||||
// ══════════════════════════════════════════════════════════════
|
||||
// RESPONSE HELPERS
|
||||
// ══════════════════════════════════════════════════════════════
|
||||
|
||||
Reference in New Issue
Block a user