HelloZeroNet / HelloZeroNet/ZeroNet

Feature Request: Add URL rewriting to sites

Ouverte
#1,548 0 commentaires 6 réactions 0 personnes assignées Voir sur GitHub
enhancement
Langage dominant
JavaScript
Étoiles
18.8k
Forks
2.3k
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

Allow each site to specify an URL rewriting scheme in `content.json`.
Proposed syntax:
```
"rewrite_rules": [
{ match: "files/.*", terminate: true },
{ match: "(.*)", replace: "index.html?url=\1", terminate: true },
]
```

The rewriting rules are:
* The URL which is checked to match against the regexp is the part after the site address, non including initial backslash.
* The matching rules are applied recursively until one with `terminate = true` is found. The first matched rule is the one which is applied at each step, each time starting from the first one.
* If the `replace` key is missing the returned string is not modified.

The final url should be then internally rendered and such page returned.
There should not be any html redirect.

If after 100 rewrites the url did not find a terminate condition, the site will log an error and the original request will be made.

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Commencez par retracer la manière dont le content.json d’un site est chargé et dont les URL entrantes sont rendues en interne. Définissez le comportement de rewrite_rules à partir de la syntaxe proposée, notamment la correspondance récursive, le remplacement, la terminaison et la limite de 100 réécritures ; le travail est considéré comme terminé lorsque les pages réécrites sont rendues en interne sans redirection HTML et que les réécritures non terminantes consignent une erreur avant l’envoi de la requête d’origine.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Domaine
backend
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.