Skip to content

Theme: Add nginx redirects template based on Aliases - #95

Merged
marcuspollio merged 4 commits into
mainfrom
redirects
Oct 23, 2026
Merged

marcuspollio merged 4 commits into
mainfrom
redirects

Conversation

@marcuspollio

@marcuspollio marcuspollio commented Sep 25, 2026 •

Copy link
Copy Markdown
Collaborator

This adds a Hugo-generated server-side URLs redirects file at /public/.nginx/301.nginx, as part of #89.

The file structure is similar to (excerpt):

/addons /download/addons/;
/addons.php /download/addons/;
/addons.php?lang=be /download/addons/;
/addons.php?lang=de /de/download/addons/;
/addons.php?lang=en /download/addons/;
/addons.php?lang=es /es/download/addons/;
/addons.php?lang=es_CO /es/download/addons/;
/addons.php?lang=fi /download/addons/;
/addons.php?lang=fr /fr/download/addons/;
/addons.php?lang=it /download/addons/;
/addons.php?lang=ja /ja/download/addons/;
/addons.php?lang=ka /download/addons/;
/addons.php?lang=pt_BR /pt/download/addons/;
/addons.php?lang=ru /download/addons/;
/addons.php?lang=zh_CN /zh/download/addons/;
/addons.php?lang=zh_TW /zh/download/addons/;
/addons/ /download/addons/;
/blog /news/;
/blog.php /news/;
/blog.php?lang=be /news/;
/blog.php?lang=de /de/news/;
/blog.php?lang=en /news/;
/blog.php?lang=es /es/news/;
...

Basically, for each page with Aliases, a map of paths is created with first the old URL and then the new one.
Old URLs can be /<old>, /<old>/, /<old>.php, or /<old>.php?lang=<locale>.
New URLs are either the default English /<new>/, or if the translation is enabled /<lang>/<new>/.

Page with Aliases are currently: Code of Conduct, Privacy Policy, Calendar, Professional Network, Development Handbook, Donate, Download, Addons, Features, and News.

For references, see Hugo URL management and Aliases documentation.

For references, I used a wget of the current "old" FreeCAD website pages:

Log after cleanup
https://www.freecad.org/
https://www.freecad.org/index.html
https://www.freecad.org/robots.txt

https://www.freecad.org/$%7BimageUrl%7D
https://www.freecad.org/$%7Blink%7D


ICO:

https://www.freecad.org/images/favicon.ico


SVG:

https://www.freecad.org/svg/freecad-home.svg
https://www.freecad.org/svg/icon-apple.svg
https://www.freecad.org/svg/icon-discord-light.svg
https://www.freecad.org/svg/icon-down.svg
https://www.freecad.org/svg/icon-facebook-light.svg
https://www.freecad.org/svg/icon-forum-light.svg
https://www.freecad.org/svg/icon-github-light.svg
https://www.freecad.org/svg/icon-gitter-light.svg
https://www.freecad.org/svg/icon-irc-light.svg
https://www.freecad.org/svg/icon-linkedin-light.svg
https://www.freecad.org/svg/icon-linux.svg
https://www.freecad.org/svg/icon-mastodon-light.svg
https://www.freecad.org/svg/icon-matrix-light.svg
https://www.freecad.org/svg/icon-reddit-light.svg
https://www.freecad.org/svg/icon-twitter-light.svg
https://www.freecad.org/svg/icon-windows.svg
https://www.freecad.org/svg/logo-freecad.svg
https://www.freecad.org/svg/pattern-background.svg


IMAGES:

https://www.freecad.org/images/bim-spritesheet.avif
https://www.freecad.org/images/cover-photo.avif
https://www.freecad.org/images/f16-main-landing-gear-spritesheet.avif
https://www.freecad.org/images/feature-01.avif
https://www.freecad.org/images/feature-02.avif
https://www.freecad.org/images/feature-03.avif
https://www.freecad.org/images/feature-04.avif
https://www.freecad.org/images/feature-05.avif
https://www.freecad.org/images/feature-06.avif
https://www.freecad.org/images/feature-07.avif
https://www.freecad.org/images/feature-08.avif
https://www.freecad.org/images/gingerbread-spritesheet.avif
https://www.freecad.org/images/loader-freecad-small.gif
https://www.freecad.org/images/professional-network-logo.png
https://www.freecad.org/images/screenshot-01.avif
https://www.freecad.org/images/screenshot-03.avif
https://www.freecad.org/images/screenshot-05.avif
https://www.freecad.org/images/screenshot-06.avif
https://www.freecad.org/images/screenshot-07.avif
https://www.freecad.org/images/screenshot-08.avif
https://www.freecad.org/images/sponsors/3bm.png
https://www.freecad.org/images/sponsors/aleph.svg
https://www.freecad.org/images/sponsors/chudovo.png
https://www.freecad.org/images/sponsors/epiray.svg
https://www.freecad.org/images/sponsors/imetric4d.png
https://www.freecad.org/images/sponsors/jetbrains.svg
https://www.freecad.org/images/sponsors/kanardia.png
https://www.freecad.org/images/sponsors/kicad.png
https://www.freecad.org/images/sponsors/librespace.png
https://www.freecad.org/images/sponsors/microsoft.png
https://www.freecad.org/images/sponsors/oaktree.png
https://www.freecad.org/images/sponsors/openingdesign.png
https://www.freecad.org/images/sponsors/packt.png
https://www.freecad.org/images/sponsors/pcbway.png
https://www.freecad.org/images/sponsors/wetpaint.png
https://www.freecad.org/images/wooden-folding-table-spritesheet.avif


FLAGS:

https://www.freecad.org/lang/be_BY/flag.jpg
https://www.freecad.org/lang/ca_ES/flag.jpg
https://www.freecad.org/lang/cs_CZ/flag.jpg
https://www.freecad.org/lang/de_DE/flag.jpg
https://www.freecad.org/lang/el_GR/flag.jpg
https://www.freecad.org/lang/en/flag.jpg
https://www.freecad.org/lang/es_CO/flag.jpg
https://www.freecad.org/lang/es_ES/flag.jpg
https://www.freecad.org/lang/eu_ES/flag.jpg
https://www.freecad.org/lang/fa_IR/flag.jpg
https://www.freecad.org/lang/fi_FI/flag.jpg
https://www.freecad.org/lang/fr_FR/flag.jpg
https://www.freecad.org/lang/ga_IE/flag.jpg
https://www.freecad.org/lang/hr_HR/flag.jpg
https://www.freecad.org/lang/hu_HU/flag.jpg
https://www.freecad.org/lang/it_IT/flag.jpg
https://www.freecad.org/lang/ja_JP/flag.jpg
https://www.freecad.org/lang/ka_GE/flag.jpg
https://www.freecad.org/lang/ko_KR/flag.jpg
https://www.freecad.org/lang/lo_LA/flag.jpg
https://www.freecad.org/lang/nl_NL/flag.jpg
https://www.freecad.org/lang/pl_PL/flag.jpg
https://www.freecad.org/lang/pt_BR/flag.jpg
https://www.freecad.org/lang/ru_RU/flag.jpg
https://www.freecad.org/lang/sl_SI/flag.jpg
https://www.freecad.org/lang/sr_RS/flag.jpg
https://www.freecad.org/lang/sv_SE/flag.jpg
https://www.freecad.org/lang/ta_IN/flag.jpg
https://www.freecad.org/lang/tr_TR/flag.jpg
https://www.freecad.org/lang/uk_UA/flag.jpg
https://www.freecad.org/lang/zh_CN/flag.jpg
https://www.freecad.org/lang/zh_TW/flag.jpg


JS:

https://www.freecad.org/js/bootstrap-5.3.3.bundle.min.js
https://www.freecad.org/js/chart-4.4.8.js


FONT:

https://www.freecad.org/fonts/Evolventa-Regular.woff
https://www.freecad.org/fonts/Montserrat-Black.woff
https://www.freecad.org/fonts/Montserrat-Bold.woff
https://www.freecad.org/fonts/Roboto-Bold.woff
https://www.freecad.org/fonts/Roboto-Regular.woff


CSS:

https://www.freecad.org/css/bootstrap-5.3.3.min.css
https://www.freecad.org/css/style.css


INDEX:

https://www.freecad.org/index.php?lang=be
https://www.freecad.org/index.php?lang=ca
https://www.freecad.org/index.php?lang=cs
https://www.freecad.org/index.php?lang=de
https://www.freecad.org/index.php?lang=el
https://www.freecad.org/index.php?lang=en
https://www.freecad.org/index.php?lang=es
https://www.freecad.org/index.php?lang=es_CO
https://www.freecad.org/index.php?lang=eu
https://www.freecad.org/index.php?lang=fa
https://www.freecad.org/index.php?lang=fi
https://www.freecad.org/index.php?lang=fr
https://www.freecad.org/index.php?lang=ga
https://www.freecad.org/index.php?lang=hr
https://www.freecad.org/index.php?lang=hu
https://www.freecad.org/index.php?lang=it
https://www.freecad.org/index.php?lang=ja
https://www.freecad.org/index.php?lang=ka
https://www.freecad.org/index.php?lang=ko
https://www.freecad.org/index.php?lang=lo
https://www.freecad.org/index.php?lang=nl
https://www.freecad.org/index.php?lang=pl
https://www.freecad.org/index.php?lang=pt_BR
https://www.freecad.org/index.php?lang=ru
https://www.freecad.org/index.php?lang=sl
https://www.freecad.org/index.php?lang=sr
https://www.freecad.org/index.php?lang=sv
https://www.freecad.org/index.php?lang=ta
https://www.freecad.org/index.php?lang=tr
https://www.freecad.org/index.php?lang=uk
https://www.freecad.org/index.php?lang=zh_CN
https://www.freecad.org/index.php?lang=zh_TW


ADDONS:

https://www.freecad.org/addons.php?lang=be
https://www.freecad.org/addons.php?lang=ca
https://www.freecad.org/addons.php?lang=cs
https://www.freecad.org/addons.php?lang=de
https://www.freecad.org/addons.php?lang=el
https://www.freecad.org/addons.php?lang=en
https://www.freecad.org/addons.php?lang=es
https://www.freecad.org/addons.php?lang=es_CO
https://www.freecad.org/addons.php?lang=eu
https://www.freecad.org/addons.php?lang=fa
https://www.freecad.org/addons.php?lang=fi
https://www.freecad.org/addons.php?lang=fr
https://www.freecad.org/addons.php?lang=ga
https://www.freecad.org/addons.php?lang=hr
https://www.freecad.org/addons.php?lang=hu
https://www.freecad.org/addons.php?lang=it
https://www.freecad.org/addons.php?lang=ja
https://www.freecad.org/addons.php?lang=ka
https://www.freecad.org/addons.php?lang=ko
https://www.freecad.org/addons.php?lang=lo
https://www.freecad.org/addons.php?lang=nl
https://www.freecad.org/addons.php?lang=pl
https://www.freecad.org/addons.php?lang=pt_BR
https://www.freecad.org/addons.php?lang=ru
https://www.freecad.org/addons.php?lang=sl
https://www.freecad.org/addons.php?lang=sr
https://www.freecad.org/addons.php?lang=sv
https://www.freecad.org/addons.php?lang=ta
https://www.freecad.org/addons.php?lang=tr
https://www.freecad.org/addons.php?lang=uk
https://www.freecad.org/addons.php?lang=zh_CN
https://www.freecad.org/addons.php?lang=zh_TW


BLOG:

https://www.freecad.org/blog.php?lang=be
https://www.freecad.org/blog.php?lang=ca
https://www.freecad.org/blog.php?lang=cs
https://www.freecad.org/blog.php?lang=de
https://www.freecad.org/blog.php?lang=el
https://www.freecad.org/blog.php?lang=en
https://www.freecad.org/blog.php?lang=es
https://www.freecad.org/blog.php?lang=es_CO
https://www.freecad.org/blog.php?lang=eu
https://www.freecad.org/blog.php?lang=fa
https://www.freecad.org/blog.php?lang=fi
https://www.freecad.org/blog.php?lang=fr
https://www.freecad.org/blog.php?lang=ga
https://www.freecad.org/blog.php?lang=hr
https://www.freecad.org/blog.php?lang=hu
https://www.freecad.org/blog.php?lang=it
https://www.freecad.org/blog.php?lang=ja
https://www.freecad.org/blog.php?lang=ka
https://www.freecad.org/blog.php?lang=ko
https://www.freecad.org/blog.php?lang=lo
https://www.freecad.org/blog.php?lang=nl
https://www.freecad.org/blog.php?lang=pl
https://www.freecad.org/blog.php?lang=pt_BR
https://www.freecad.org/blog.php?lang=ru
https://www.freecad.org/blog.php?lang=sl
https://www.freecad.org/blog.php?lang=sr
https://www.freecad.org/blog.php?lang=sv
https://www.freecad.org/blog.php?lang=ta
https://www.freecad.org/blog.php?lang=tr
https://www.freecad.org/blog.php?lang=uk
https://www.freecad.org/blog.php?lang=zh_CN
https://www.freecad.org/blog.php?lang=zh_TW


CODE OF CONDUCT:

https://www.freecad.org/codeofconduct.php?lang=be
https://www.freecad.org/codeofconduct.php?lang=ca
https://www.freecad.org/codeofconduct.php?lang=cs
https://www.freecad.org/codeofconduct.php?lang=de
https://www.freecad.org/codeofconduct.php?lang=el
https://www.freecad.org/codeofconduct.php?lang=en
https://www.freecad.org/codeofconduct.php?lang=es
https://www.freecad.org/codeofconduct.php?lang=es_CO
https://www.freecad.org/codeofconduct.php?lang=eu
https://www.freecad.org/codeofconduct.php?lang=fa
https://www.freecad.org/codeofconduct.php?lang=fi
https://www.freecad.org/codeofconduct.php?lang=fr
https://www.freecad.org/codeofconduct.php?lang=ga
https://www.freecad.org/codeofconduct.php?lang=hr
https://www.freecad.org/codeofconduct.php?lang=hu
https://www.freecad.org/codeofconduct.php?lang=it
https://www.freecad.org/codeofconduct.php?lang=ja
https://www.freecad.org/codeofconduct.php?lang=ka
https://www.freecad.org/codeofconduct.php?lang=ko
https://www.freecad.org/codeofconduct.php?lang=lo
https://www.freecad.org/codeofconduct.php?lang=nl
https://www.freecad.org/codeofconduct.php?lang=pl
https://www.freecad.org/codeofconduct.php?lang=pt_BR
https://www.freecad.org/codeofconduct.php?lang=ru
https://www.freecad.org/codeofconduct.php?lang=sl
https://www.freecad.org/codeofconduct.php?lang=sr
https://www.freecad.org/codeofconduct.php?lang=sv
https://www.freecad.org/codeofconduct.php?lang=ta
https://www.freecad.org/codeofconduct.php?lang=tr
https://www.freecad.org/codeofconduct.php?lang=uk
https://www.freecad.org/codeofconduct.php?lang=zh_CN
https://www.freecad.org/codeofconduct.php?lang=zh_TW


CONTRIBUTING:

https://www.freecad.org/contributing.php?lang=be
https://www.freecad.org/contributing.php?lang=ca
https://www.freecad.org/contributing.php?lang=cs
https://www.freecad.org/contributing.php?lang=de
https://www.freecad.org/contributing.php?lang=el
https://www.freecad.org/contributing.php?lang=en
https://www.freecad.org/contributing.php?lang=es
https://www.freecad.org/contributing.php?lang=es_CO
https://www.freecad.org/contributing.php?lang=eu
https://www.freecad.org/contributing.php?lang=fa
https://www.freecad.org/contributing.php?lang=fi
https://www.freecad.org/contributing.php?lang=fr
https://www.freecad.org/contributing.php?lang=ga
https://www.freecad.org/contributing.php?lang=hr
https://www.freecad.org/contributing.php?lang=hu
https://www.freecad.org/contributing.php?lang=it
https://www.freecad.org/contributing.php?lang=ja
https://www.freecad.org/contributing.php?lang=ka
https://www.freecad.org/contributing.php?lang=ko
https://www.freecad.org/contributing.php?lang=lo
https://www.freecad.org/contributing.php?lang=nl
https://www.freecad.org/contributing.php?lang=pl
https://www.freecad.org/contributing.php?lang=pt_BR
https://www.freecad.org/contributing.php?lang=ru
https://www.freecad.org/contributing.php?lang=sl
https://www.freecad.org/contributing.php?lang=sr
https://www.freecad.org/contributing.php?lang=sv
https://www.freecad.org/contributing.php?lang=ta
https://www.freecad.org/contributing.php?lang=tr
https://www.freecad.org/contributing.php?lang=uk
https://www.freecad.org/contributing.php?lang=zh_CN
https://www.freecad.org/contributing.php?lang=zh_TW


DOWNLOADS:

https://www.freecad.org/downloads.php?lang=be
https://www.freecad.org/downloads.php?lang=ca
https://www.freecad.org/downloads.php?lang=cs
https://www.freecad.org/downloads.php?lang=de
https://www.freecad.org/downloads.php?lang=el
https://www.freecad.org/downloads.php?lang=en
https://www.freecad.org/downloads.php?lang=es
https://www.freecad.org/downloads.php?lang=es_CO
https://www.freecad.org/downloads.php?lang=eu
https://www.freecad.org/downloads.php?lang=fa
https://www.freecad.org/downloads.php?lang=fi
https://www.freecad.org/downloads.php?lang=fr
https://www.freecad.org/downloads.php?lang=ga
https://www.freecad.org/downloads.php?lang=hr
https://www.freecad.org/downloads.php?lang=hu
https://www.freecad.org/downloads.php?lang=it
https://www.freecad.org/downloads.php?lang=ja
https://www.freecad.org/downloads.php?lang=ka
https://www.freecad.org/downloads.php?lang=ko
https://www.freecad.org/downloads.php?lang=lo
https://www.freecad.org/downloads.php?lang=nl
https://www.freecad.org/downloads.php?lang=pl
https://www.freecad.org/downloads.php?lang=pt_BR
https://www.freecad.org/downloads.php?lang=ru
https://www.freecad.org/downloads.php?lang=sl
https://www.freecad.org/downloads.php?lang=sr
https://www.freecad.org/downloads.php?lang=sv
https://www.freecad.org/downloads.php?lang=ta
https://www.freecad.org/downloads.php?lang=tr
https://www.freecad.org/downloads.php?lang=uk
https://www.freecad.org/downloads.php?lang=zh_CN
https://www.freecad.org/downloads.php?lang=zh_TW


EVENTS:

https://www.freecad.org/events.php?lang=be
https://www.freecad.org/events.php?lang=ca
https://www.freecad.org/events.php?lang=cs
https://www.freecad.org/events.php?lang=de
https://www.freecad.org/events.php?lang=el
https://www.freecad.org/events.php?lang=en
https://www.freecad.org/events.php?lang=es
https://www.freecad.org/events.php?lang=es_CO
https://www.freecad.org/events.php?lang=eu
https://www.freecad.org/events.php?lang=fa
https://www.freecad.org/events.php?lang=fi
https://www.freecad.org/events.php?lang=fr
https://www.freecad.org/events.php?lang=ga
https://www.freecad.org/events.php?lang=hr
https://www.freecad.org/events.php?lang=hu
https://www.freecad.org/events.php?lang=it
https://www.freecad.org/events.php?lang=ja
https://www.freecad.org/events.php?lang=ka
https://www.freecad.org/events.php?lang=ko
https://www.freecad.org/events.php?lang=lo
https://www.freecad.org/events.php?lang=nl
https://www.freecad.org/events.php?lang=pl
https://www.freecad.org/events.php?lang=pt_BR
https://www.freecad.org/events.php?lang=ru
https://www.freecad.org/events.php?lang=sl
https://www.freecad.org/events.php?lang=sr
https://www.freecad.org/events.php?lang=sv
https://www.freecad.org/events.php?lang=ta
https://www.freecad.org/events.php?lang=tr
https://www.freecad.org/events.php?lang=uk
https://www.freecad.org/events.php?lang=zh_CN
https://www.freecad.org/events.php?lang=zh_TW


FEATURES:

https://www.freecad.org/features.php?lang=be
https://www.freecad.org/features.php?lang=ca
https://www.freecad.org/features.php?lang=cs
https://www.freecad.org/features.php?lang=de
https://www.freecad.org/features.php?lang=el
https://www.freecad.org/features.php?lang=en
https://www.freecad.org/features.php?lang=es
https://www.freecad.org/features.php?lang=es_CO
https://www.freecad.org/features.php?lang=eu
https://www.freecad.org/features.php?lang=fa
https://www.freecad.org/features.php?lang=fi
https://www.freecad.org/features.php?lang=fr
https://www.freecad.org/features.php?lang=ga
https://www.freecad.org/features.php?lang=hr
https://www.freecad.org/features.php?lang=hu
https://www.freecad.org/features.php?lang=it
https://www.freecad.org/features.php?lang=ja
https://www.freecad.org/features.php?lang=ka
https://www.freecad.org/features.php?lang=ko
https://www.freecad.org/features.php?lang=lo
https://www.freecad.org/features.php?lang=nl
https://www.freecad.org/features.php?lang=pl
https://www.freecad.org/features.php?lang=pt_BR
https://www.freecad.org/features.php?lang=ru
https://www.freecad.org/features.php?lang=sl
https://www.freecad.org/features.php?lang=sr
https://www.freecad.org/features.php?lang=sv
https://www.freecad.org/features.php?lang=ta
https://www.freecad.org/features.php?lang=tr
https://www.freecad.org/features.php?lang=uk
https://www.freecad.org/features.php?lang=zh_CN
https://www.freecad.org/features.php?lang=zh_TW


PRIVACY:

https://www.freecad.org/privacy.php?lang=be
https://www.freecad.org/privacy.php?lang=ca
https://www.freecad.org/privacy.php?lang=cs
https://www.freecad.org/privacy.php?lang=de
https://www.freecad.org/privacy.php?lang=el
https://www.freecad.org/privacy.php?lang=en
https://www.freecad.org/privacy.php?lang=es
https://www.freecad.org/privacy.php?lang=es_CO
https://www.freecad.org/privacy.php?lang=eu
https://www.freecad.org/privacy.php?lang=fa
https://www.freecad.org/privacy.php?lang=fi
https://www.freecad.org/privacy.php?lang=fr
https://www.freecad.org/privacy.php?lang=ga
https://www.freecad.org/privacy.php?lang=hr
https://www.freecad.org/privacy.php?lang=hu
https://www.freecad.org/privacy.php?lang=it
https://www.freecad.org/privacy.php?lang=ja
https://www.freecad.org/privacy.php?lang=ka
https://www.freecad.org/privacy.php?lang=ko
https://www.freecad.org/privacy.php?lang=lo
https://www.freecad.org/privacy.php?lang=nl
https://www.freecad.org/privacy.php?lang=pl
https://www.freecad.org/privacy.php?lang=pt_BR
https://www.freecad.org/privacy.php?lang=ru
https://www.freecad.org/privacy.php?lang=sl
https://www.freecad.org/privacy.php?lang=sr
https://www.freecad.org/privacy.php?lang=sv
https://www.freecad.org/privacy.php?lang=ta
https://www.freecad.org/privacy.php?lang=tr
https://www.freecad.org/privacy.php?lang=uk
https://www.freecad.org/privacy.php?lang=zh_CN
https://www.freecad.org/privacy.php?lang=zh_TW


PROFESSIONAL NETWORK:

https://www.freecad.org/professional-network.php?lang=be
https://www.freecad.org/professional-network.php?lang=ca
https://www.freecad.org/professional-network.php?lang=cs
https://www.freecad.org/professional-network.php?lang=de
https://www.freecad.org/professional-network.php?lang=el
https://www.freecad.org/professional-network.php?lang=en
https://www.freecad.org/professional-network.php?lang=es
https://www.freecad.org/professional-network.php?lang=es_CO
https://www.freecad.org/professional-network.php?lang=eu
https://www.freecad.org/professional-network.php?lang=fa
https://www.freecad.org/professional-network.php?lang=fi
https://www.freecad.org/professional-network.php?lang=fr
https://www.freecad.org/professional-network.php?lang=ga
https://www.freecad.org/professional-network.php?lang=hr
https://www.freecad.org/professional-network.php?lang=hu
https://www.freecad.org/professional-network.php?lang=it
https://www.freecad.org/professional-network.php?lang=ja
https://www.freecad.org/professional-network.php?lang=ka
https://www.freecad.org/professional-network.php?lang=ko
https://www.freecad.org/professional-network.php?lang=lo
https://www.freecad.org/professional-network.php?lang=nl
https://www.freecad.org/professional-network.php?lang=pl
https://www.freecad.org/professional-network.php?lang=pt_BR
https://www.freecad.org/professional-network.php?lang=ru
https://www.freecad.org/professional-network.php?lang=sl
https://www.freecad.org/professional-network.php?lang=sr
https://www.freecad.org/professional-network.php?lang=sv
https://www.freecad.org/professional-network.php?lang=ta
https://www.freecad.org/professional-network.php?lang=tr
https://www.freecad.org/professional-network.php?lang=uk
https://www.freecad.org/professional-network.php?lang=zh_CN
https://www.freecad.org/professional-network.php?lang=zh_TW


SPONSOR:

https://www.freecad.org/sponsor.php?lang=be
https://www.freecad.org/sponsor.php?lang=ca
https://www.freecad.org/sponsor.php?lang=cs
https://www.freecad.org/sponsor.php?lang=de
https://www.freecad.org/sponsor.php?lang=el
https://www.freecad.org/sponsor.php?lang=en
https://www.freecad.org/sponsor.php?lang=es
https://www.freecad.org/sponsor.php?lang=es_CO
https://www.freecad.org/sponsor.php?lang=eu
https://www.freecad.org/sponsor.php?lang=fa
https://www.freecad.org/sponsor.php?lang=fi
https://www.freecad.org/sponsor.php?lang=fr
https://www.freecad.org/sponsor.php?lang=ga
https://www.freecad.org/sponsor.php?lang=hr
https://www.freecad.org/sponsor.php?lang=hu
https://www.freecad.org/sponsor.php?lang=it
https://www.freecad.org/sponsor.php?lang=ja
https://www.freecad.org/sponsor.php?lang=ka
https://www.freecad.org/sponsor.php?lang=ko
https://www.freecad.org/sponsor.php?lang=lo
https://www.freecad.org/sponsor.php?lang=nl
https://www.freecad.org/sponsor.php?lang=pl
https://www.freecad.org/sponsor.php?lang=pt_BR
https://www.freecad.org/sponsor.php?lang=ru
https://www.freecad.org/sponsor.php?lang=sl
https://www.freecad.org/sponsor.php?lang=sr
https://www.freecad.org/sponsor.php?lang=sv
https://www.freecad.org/sponsor.php?lang=ta
https://www.freecad.org/sponsor.php?lang=tr
https://www.freecad.org/sponsor.php?lang=uk
https://www.freecad.org/sponsor.php?lang=zh_CN
https://www.freecad.org/sponsor.php?lang=zh_TW


WIKI:

https://www.freecad.org/%5C%22https://wiki.freecad.org/Category:File_Formats%5C%22
https://www.freecad.org/%5C%22https://wiki.freecad.org/File_Format_FCStd%5C%22
https://www.freecad.org/%E2%80%9Dhttps://wiki.freecad.org/OpenSCAD_Module%22
https://www.freecad.org/%E2%80%9Dhttps://wiki.freecad.org/Path_Workbench%E2%80%9D


WIKIPEDIA:

https://www.freecad.org/%5C%22https://de.wikipedia.org/wiki/AutoCAD
https://www.freecad.org/%5C%22https://de.wikipedia.org/wiki/Collada_(Speicherformat)%5C%22
https://www.freecad.org/%5C%22https://de.wikipedia.org/wiki/Drawing_Interchange_Format%5C%22
https://www.freecad.org/%5C%22https://de.wikipedia.org/wiki/IGES%5C%22
https://www.freecad.org/%5C%22https://de.wikipedia.org/wiki/ISO_10303%5C%22
https://www.freecad.org/%5C%22https://de.wikipedia.org/wiki/Industry_Foundation_Classes%5C%22
https://www.freecad.org/%5C%22https://de.wikipedia.org/wiki/NASTRAN%5C%22
https://www.freecad.org/%5C%22https://de.wikipedia.org/wiki/Object_File_Formatl%5C%22
https://www.freecad.org/%5C%22https://de.wikipedia.org/wiki/OpenSCAD%5C%22
https://www.freecad.org/%5C%22https://de.wikipedia.org/wiki/STL-Schnittstelle%5C%22
https://www.freecad.org/%5C%22https://de.wikipedia.org/wiki/Scalable_Vector_Graphics%5C%22
https://www.freecad.org/%5C%22https://de.wikipedia.org/wiki/Shapefile%5C%22
https://www.freecad.org/%5C%22https://de.wikipedia.org/wiki/Virtual_Reality_Modeling_Language%5C%22
https://www.freecad.org/%5C%22https://de.wikipedia.org/wiki/Wavefront_OBJ%5C%22
https://www.freecad.org/%E2%80%9Dhttps://en.wikipedia.org/wiki/.dwg%E2%80%9D
https://www.freecad.org/%E2%80%9Dhttps://en.wikipedia.org/wiki/COLLADA%E2%80%9D
https://www.freecad.org/%E2%80%9Dhttps://en.wikipedia.org/wiki/OFF_(file_format)%E2%80%9D
https://www.freecad.org/%E2%80%9Dhttps://en.wikipedia.org/wiki/OpenSCAD%22
https://www.freecad.org/%E2%80%9Dhttps://en.wikipedia.org/wiki/Svg%E2%80%9D
https://www.freecad.org/%E2%80%9Dhttps://en.wikipedia.org/wiki/VRML%E2%80%9D
https://www.freecad.org/%E2%80%9Dhttps://en.wikipedia.org/wiki/Wavefront_.obj_file%E2%80%9D


356 files downloaded, 84MB
  1. Open to change the filename, path, and structure if it makes it easier on server-side.
  2. Any other currently existing pages or resources that should get a redirect?
  3. I have not added automatic server-side redirects to the wiki yet (i.e. displayed links on the new website are correct, but users still can access placeholder pages with a redirect to a wiki page). Once 1) is OK, I can add them as well.
  4. I don't know if the auto-redirect to the custom 404.html page should be done part of this PR/template, or if it's unrelated (i.e. works in a different manner on nginx).

PR checklist

  • This change is verified to work as described. The documentation is added/updated if necessary.
  • This change complies with the repository Guidelines.

@github-actions github-actions Bot added Config Configuration Theme Theme code and related items labels Sep 25, 2026
@marcuspollio

Copy link
Copy Markdown
Collaborator Author

FYI @chennes @maxwxyz

@maxwxyz
maxwxyz requested a review from chennes October 3, 2026 14:31
@chennes chennes self-assigned this Oct 5, 2026
@chennes

chennes commented Oct 5, 2026

Copy link
Copy Markdown
Member

Thanks, I'll review this and then get it set up server-side to use the new file.

title: Innovate without limits
linkTitle: Features
description: Powerful and open parametric design for everyone.
aliases: ["/features"]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one doesn't work: the section is already called "features", so this results in a circular self-redirecting loop.

@chennes

chennes commented Oct 15, 2026

Copy link
Copy Markdown
Member

@marcuspollio I've added a commit that makes a few tweaks to your setup here: give it a look.

@maxwxyz

maxwxyz commented Oct 18, 2026

Copy link
Copy Markdown
Contributor

@marcuspollio good to go?
Is it possible to launch the site and make improvements afterwards?

@marcuspollio

Copy link
Copy Markdown
Collaborator Author

Hi @chennes
Thanks for the update, looks good!

I've pushed another update as well: this adds support for directly redirecting pages that have the redirect param in front matter.
Currently (i.e. before this commit), the "internal" links in the website to such pages provide the redirect target URL instead (via the link_redirect utility partial), but users can still access these empty/placeholder pages if they enter these pages URLs directly in the browser URL address field.
This fixes the third item in the list of this PR description.
Plus a few minor tweaks.

So now, for public/.nginx/301.nginx we have:

301.nginx content
/?lang=be /;
/?lang=ca /;
/?lang=cs /;
/?lang=de /de/;
/?lang=el /;
/?lang=en /;
/?lang=es /es/;
/?lang=es_CO /es/;
/?lang=eu /;
/?lang=fa /;
/?lang=fi /;
/?lang=fr /fr/;
/?lang=ga /;
/?lang=hr /;
/?lang=hu /;
/?lang=it /;
/?lang=ja /ja/;
/?lang=ka /;
/?lang=ko /;
/?lang=lo /;
/?lang=nl /;
/?lang=pl /;
/?lang=pt_BR /pt/;
/?lang=ru /;
/?lang=sl /;
/?lang=sr /;
/?lang=sv /;
/?lang=ta /;
/?lang=tr /;
/?lang=uk /;
/?lang=zh_CN /zh/;
/?lang=zh_TW /zh/;
/addons /download/addons/;
/addons.php /download/addons/;
/addons.php?lang=be /download/addons/;
/addons.php?lang=ca /download/addons/;
/addons.php?lang=cs /download/addons/;
/addons.php?lang=de /de/download/addons/;
/addons.php?lang=el /download/addons/;
/addons.php?lang=en /download/addons/;
/addons.php?lang=es /es/download/addons/;
/addons.php?lang=es_CO /es/download/addons/;
/addons.php?lang=eu /download/addons/;
/addons.php?lang=fa /download/addons/;
/addons.php?lang=fi /download/addons/;
/addons.php?lang=fr /fr/download/addons/;
/addons.php?lang=ga /download/addons/;
/addons.php?lang=hr /download/addons/;
/addons.php?lang=hu /download/addons/;
/addons.php?lang=it /download/addons/;
/addons.php?lang=ja /ja/download/addons/;
/addons.php?lang=ka /download/addons/;
/addons.php?lang=ko /download/addons/;
/addons.php?lang=lo /download/addons/;
/addons.php?lang=nl /download/addons/;
/addons.php?lang=pl /download/addons/;
/addons.php?lang=pt_BR /pt/download/addons/;
/addons.php?lang=ru /download/addons/;
/addons.php?lang=sl /download/addons/;
/addons.php?lang=sr /download/addons/;
/addons.php?lang=sv /download/addons/;
/addons.php?lang=ta /download/addons/;
/addons.php?lang=tr /download/addons/;
/addons.php?lang=uk /download/addons/;
/addons.php?lang=zh_CN /zh/download/addons/;
/addons.php?lang=zh_TW /zh/download/addons/;
/addons/ /download/addons/;
/api https://freecad.github.io/SourceDoc/;
/blog /news/;
/blog.php /news/;
/blog.php?lang=be /news/;
/blog.php?lang=ca /news/;
/blog.php?lang=cs /news/;
/blog.php?lang=de /de/news/;
/blog.php?lang=el /news/;
/blog.php?lang=en /news/;
/blog.php?lang=es /es/news/;
/blog.php?lang=es_CO /es/news/;
/blog.php?lang=eu /news/;
/blog.php?lang=fa /news/;
/blog.php?lang=fi /news/;
/blog.php?lang=fr /fr/news/;
/blog.php?lang=ga /news/;
/blog.php?lang=hr /news/;
/blog.php?lang=hu /news/;
/blog.php?lang=it /news/;
/blog.php?lang=ja /ja/news/;
/blog.php?lang=ka /news/;
/blog.php?lang=ko /news/;
/blog.php?lang=lo /news/;
/blog.php?lang=nl /news/;
/blog.php?lang=pl /news/;
/blog.php?lang=pt_BR /pt/news/;
/blog.php?lang=ru /news/;
/blog.php?lang=sl /news/;
/blog.php?lang=sr /news/;
/blog.php?lang=sv /news/;
/blog.php?lang=ta /news/;
/blog.php?lang=tr /news/;
/blog.php?lang=uk /news/;
/blog.php?lang=zh_CN /zh/news/;
/blog.php?lang=zh_TW /zh/news/;
/blog/ /news/;
/community/events https://events.freecad.org/;
/community/fpa https://fpa.freecad.org;
/community/lens https://lens.freecad.org/;
/community/shop https://shop.freecad.org/;
/contributing /dev/;
/contributing.php /dev/;
/contributing.php?lang=be /dev/;
/contributing.php?lang=ca /dev/;
/contributing.php?lang=cs /dev/;
/contributing.php?lang=de /de/dev/;
/contributing.php?lang=el /dev/;
/contributing.php?lang=en /dev/;
/contributing.php?lang=es /es/dev/;
/contributing.php?lang=es_CO /es/dev/;
/contributing.php?lang=eu /dev/;
/contributing.php?lang=fa /dev/;
/contributing.php?lang=fi /dev/;
/contributing.php?lang=fr /fr/dev/;
/contributing.php?lang=ga /dev/;
/contributing.php?lang=hr /dev/;
/contributing.php?lang=hu /dev/;
/contributing.php?lang=it /dev/;
/contributing.php?lang=ja /ja/dev/;
/contributing.php?lang=ka /dev/;
/contributing.php?lang=ko /dev/;
/contributing.php?lang=lo /dev/;
/contributing.php?lang=nl /dev/;
/contributing.php?lang=pl /dev/;
/contributing.php?lang=pt_BR /pt/dev/;
/contributing.php?lang=ru /dev/;
/contributing.php?lang=sl /dev/;
/contributing.php?lang=sr /dev/;
/contributing.php?lang=sv /dev/;
/contributing.php?lang=ta /dev/;
/contributing.php?lang=tr /dev/;
/contributing.php?lang=uk /dev/;
/contributing.php?lang=zh_CN /zh/dev/;
/contributing.php?lang=zh_TW /zh/dev/;
/contributing/ /dev/;
/de/api https://freecad.github.io/SourceDoc/;
/de/community/events https://events.freecad.org/;
/de/community/fpa https://fpa.freecad.org;
/de/community/lens https://lens.freecad.org/;
/de/community/shop https://shop.freecad.org/;
/de/dev/addon-academy https://freecad.github.io/Addon-Academy/;
/de/download/examples https://github.com/FreeCAD/Examples;
/de/manual https://wiki.freecad.org/User_hub/de;
/de/releases/0-17 https://wiki.freecad.org/Release_notes_0.17/de;
/de/releases/0-18 https://wiki.freecad.org/Release_notes_0.18/de;
/de/releases/0-19 https://wiki.freecad.org/Release_notes_0.19/de;
/de/releases/0-20 https://wiki.freecad.org/Release_notes_0.20/de;
/de/releases/0-21 https://wiki.freecad.org/Release_notes_0.21/de;
/dev/addon-academy https://freecad.github.io/Addon-Academy/;
/download/examples https://github.com/FreeCAD/Examples;
/downloads /download/;
/downloads.php /download/;
/downloads.php?lang=be /download/;
/downloads.php?lang=ca /download/;
/downloads.php?lang=cs /download/;
/downloads.php?lang=de /de/download/;
/downloads.php?lang=el /download/;
/downloads.php?lang=en /download/;
/downloads.php?lang=es /es/download/;
/downloads.php?lang=es_CO /es/download/;
/downloads.php?lang=eu /download/;
/downloads.php?lang=fa /download/;
/downloads.php?lang=fi /download/;
/downloads.php?lang=fr /fr/download/;
/downloads.php?lang=ga /download/;
/downloads.php?lang=hr /download/;
/downloads.php?lang=hu /download/;
/downloads.php?lang=it /download/;
/downloads.php?lang=ja /ja/download/;
/downloads.php?lang=ka /download/;
/downloads.php?lang=ko /download/;
/downloads.php?lang=lo /download/;
/downloads.php?lang=nl /download/;
/downloads.php?lang=pl /download/;
/downloads.php?lang=pt_BR /pt/download/;
/downloads.php?lang=ru /download/;
/downloads.php?lang=sl /download/;
/downloads.php?lang=sr /download/;
/downloads.php?lang=sv /download/;
/downloads.php?lang=ta /download/;
/downloads.php?lang=tr /download/;
/downloads.php?lang=uk /download/;
/downloads.php?lang=zh_CN /zh/download/;
/downloads.php?lang=zh_TW /zh/download/;
/downloads/ /download/;
/es/api https://freecad.github.io/SourceDoc/;
/es/community/events https://events.freecad.org/;
/es/community/fpa https://fpa.freecad.org;
/es/community/lens https://lens.freecad.org/;
/es/community/shop https://shop.freecad.org/;
/es/dev/addon-academy https://freecad.github.io/Addon-Academy/;
/es/download/examples https://github.com/FreeCAD/Examples;
/es/manual https://wiki.freecad.org/User_hub/es;
/es/releases/0-17 https://wiki.freecad.org/Release_notes_0.17/es;
/es/releases/0-18 https://wiki.freecad.org/Release_notes_0.18/es;
/es/releases/0-19 https://wiki.freecad.org/Release_notes_0.19/es;
/es/releases/0-20 https://wiki.freecad.org/Release_notes_0.20/es;
/es/releases/0-21 https://wiki.freecad.org/Release_notes_0.21/es;
/events /community/calendar/;
/events.php /community/calendar/;
/events.php?lang=be /community/calendar/;
/events.php?lang=ca /community/calendar/;
/events.php?lang=cs /community/calendar/;
/events.php?lang=de /de/community/calendar/;
/events.php?lang=el /community/calendar/;
/events.php?lang=en /community/calendar/;
/events.php?lang=es /es/community/calendar/;
/events.php?lang=es_CO /es/community/calendar/;
/events.php?lang=eu /community/calendar/;
/events.php?lang=fa /community/calendar/;
/events.php?lang=fi /community/calendar/;
/events.php?lang=fr /fr/community/calendar/;
/events.php?lang=ga /community/calendar/;
/events.php?lang=hr /community/calendar/;
/events.php?lang=hu /community/calendar/;
/events.php?lang=it /community/calendar/;
/events.php?lang=ja /ja/community/calendar/;
/events.php?lang=ka /community/calendar/;
/events.php?lang=ko /community/calendar/;
/events.php?lang=lo /community/calendar/;
/events.php?lang=nl /community/calendar/;
/events.php?lang=pl /community/calendar/;
/events.php?lang=pt_BR /pt/community/calendar/;
/events.php?lang=ru /community/calendar/;
/events.php?lang=sl /community/calendar/;
/events.php?lang=sr /community/calendar/;
/events.php?lang=sv /community/calendar/;
/events.php?lang=ta /community/calendar/;
/events.php?lang=tr /community/calendar/;
/events.php?lang=uk /community/calendar/;
/events.php?lang=zh_CN /zh/community/calendar/;
/events.php?lang=zh_TW /zh/community/calendar/;
/events/ /community/calendar/;
/features.php /features/;
/features.php?lang=be /features/;
/features.php?lang=ca /features/;
/features.php?lang=cs /features/;
/features.php?lang=de /de/features/;
/features.php?lang=el /features/;
/features.php?lang=en /features/;
/features.php?lang=es /es/features/;
/features.php?lang=es_CO /es/features/;
/features.php?lang=eu /features/;
/features.php?lang=fa /features/;
/features.php?lang=fi /features/;
/features.php?lang=fr /fr/features/;
/features.php?lang=ga /features/;
/features.php?lang=hr /features/;
/features.php?lang=hu /features/;
/features.php?lang=it /features/;
/features.php?lang=ja /ja/features/;
/features.php?lang=ka /features/;
/features.php?lang=ko /features/;
/features.php?lang=lo /features/;
/features.php?lang=nl /features/;
/features.php?lang=pl /features/;
/features.php?lang=pt_BR /pt/features/;
/features.php?lang=ru /features/;
/features.php?lang=sl /features/;
/features.php?lang=sr /features/;
/features.php?lang=sv /features/;
/features.php?lang=ta /features/;
/features.php?lang=tr /features/;
/features.php?lang=uk /features/;
/features.php?lang=zh_CN /zh/features/;
/features.php?lang=zh_TW /zh/features/;
/fr/api https://freecad.github.io/SourceDoc/;
/fr/community/events https://events.freecad.org/;
/fr/community/fpa https://fpa.freecad.org;
/fr/community/lens https://lens.freecad.org/;
/fr/community/shop https://shop.freecad.org/;
/fr/dev/addon-academy https://freecad.github.io/Addon-Academy/;
/fr/download/examples https://github.com/FreeCAD/Examples;
/fr/manual https://wiki.freecad.org/User_hub/fr;
/fr/releases/0-17 https://wiki.freecad.org/Release_notes_0.17/fr;
/fr/releases/0-18 https://wiki.freecad.org/Release_notes_0.18/fr;
/fr/releases/0-19 https://wiki.freecad.org/Release_notes_0.19/fr;
/fr/releases/0-20 https://wiki.freecad.org/Release_notes_0.20/fr;
/fr/releases/0-21 https://wiki.freecad.org/Release_notes_0.21/fr;
/index /;
/index.php /;
/index.php?lang=be /;
/index.php?lang=ca /;
/index.php?lang=cs /;
/index.php?lang=de /de/;
/index.php?lang=el /;
/index.php?lang=en /;
/index.php?lang=es /es/;
/index.php?lang=es_CO /es/;
/index.php?lang=eu /;
/index.php?lang=fa /;
/index.php?lang=fi /;
/index.php?lang=fr /fr/;
/index.php?lang=ga /;
/index.php?lang=hr /;
/index.php?lang=hu /;
/index.php?lang=it /;
/index.php?lang=ja /ja/;
/index.php?lang=ka /;
/index.php?lang=ko /;
/index.php?lang=lo /;
/index.php?lang=nl /;
/index.php?lang=pl /;
/index.php?lang=pt_BR /pt/;
/index.php?lang=ru /;
/index.php?lang=sl /;
/index.php?lang=sr /;
/index.php?lang=sv /;
/index.php?lang=ta /;
/index.php?lang=tr /;
/index.php?lang=uk /;
/index.php?lang=zh_CN /zh/;
/index.php?lang=zh_TW /zh/;
/index/ /;
/ja/api https://freecad.github.io/SourceDoc/;
/ja/community/events https://events.freecad.org/;
/ja/community/fpa https://fpa.freecad.org;
/ja/community/lens https://lens.freecad.org/;
/ja/community/shop https://shop.freecad.org/;
/ja/dev/addon-academy https://freecad.github.io/Addon-Academy/;
/ja/download/examples https://github.com/FreeCAD/Examples;
/ja/manual https://wiki.freecad.org/User_hub/ja;
/ja/releases/0-17 https://wiki.freecad.org/Release_notes_0.17/ja;
/ja/releases/0-18 https://wiki.freecad.org/Release_notes_0.18/ja;
/ja/releases/0-19 https://wiki.freecad.org/Release_notes_0.19/ja;
/ja/releases/0-20 https://wiki.freecad.org/Release_notes_0.20/ja;
/ja/releases/0-21 https://wiki.freecad.org/Release_notes_0.21/ja;
/manual https://wiki.freecad.org/User_hub;
/pt/api https://freecad.github.io/SourceDoc/;
/pt/community/events https://events.freecad.org/;
/pt/community/fpa https://fpa.freecad.org;
/pt/community/lens https://lens.freecad.org/;
/pt/community/shop https://shop.freecad.org/;
/pt/dev/addon-academy https://freecad.github.io/Addon-Academy/;
/pt/download/examples https://github.com/FreeCAD/Examples;
/pt/manual https://wiki.freecad.org/User_hub/pt;
/pt/releases/0-17 https://wiki.freecad.org/Release_notes_0.17/pt;
/pt/releases/0-18 https://wiki.freecad.org/Release_notes_0.18/pt;
/pt/releases/0-19 https://wiki.freecad.org/Release_notes_0.19/pt;
/pt/releases/0-20 https://wiki.freecad.org/Release_notes_0.20/pt;
/pt/releases/0-21 https://wiki.freecad.org/Release_notes_0.21/pt;
/releases/0-17 https://wiki.freecad.org/Release_notes_0.17;
/releases/0-18 https://wiki.freecad.org/Release_notes_0.18;
/releases/0-19 https://wiki.freecad.org/Release_notes_0.19;
/releases/0-20 https://wiki.freecad.org/Release_notes_0.20;
/releases/0-21 https://wiki.freecad.org/Release_notes_0.21;
/sponsor /donate/;
/sponsor.php /donate/;
/sponsor.php?lang=be /donate/;
/sponsor.php?lang=ca /donate/;
/sponsor.php?lang=cs /donate/;
/sponsor.php?lang=de /de/donate/;
/sponsor.php?lang=el /donate/;
/sponsor.php?lang=en /donate/;
/sponsor.php?lang=es /es/donate/;
/sponsor.php?lang=es_CO /es/donate/;
/sponsor.php?lang=eu /donate/;
/sponsor.php?lang=fa /donate/;
/sponsor.php?lang=fi /donate/;
/sponsor.php?lang=fr /fr/donate/;
/sponsor.php?lang=ga /donate/;
/sponsor.php?lang=hr /donate/;
/sponsor.php?lang=hu /donate/;
/sponsor.php?lang=it /donate/;
/sponsor.php?lang=ja /ja/donate/;
/sponsor.php?lang=ka /donate/;
/sponsor.php?lang=ko /donate/;
/sponsor.php?lang=lo /donate/;
/sponsor.php?lang=nl /donate/;
/sponsor.php?lang=pl /donate/;
/sponsor.php?lang=pt_BR /pt/donate/;
/sponsor.php?lang=ru /donate/;
/sponsor.php?lang=sl /donate/;
/sponsor.php?lang=sr /donate/;
/sponsor.php?lang=sv /donate/;
/sponsor.php?lang=ta /donate/;
/sponsor.php?lang=tr /donate/;
/sponsor.php?lang=uk /donate/;
/sponsor.php?lang=zh_CN /zh/donate/;
/sponsor.php?lang=zh_TW /zh/donate/;
/sponsor/ /donate/;
/zh/api https://freecad.github.io/SourceDoc/;
/zh/community/events https://events.freecad.org/;
/zh/community/fpa https://fpa.freecad.org;
/zh/community/lens https://lens.freecad.org/;
/zh/community/shop https://shop.freecad.org/;
/zh/dev/addon-academy https://freecad.github.io/Addon-Academy/;
/zh/download/examples https://github.com/FreeCAD/Examples;
/zh/manual https://wiki.freecad.org/User_hub/zh;
/zh/releases/0-17 https://wiki.freecad.org/Release_notes_0.17/zh;
/zh/releases/0-18 https://wiki.freecad.org/Release_notes_0.18/zh;
/zh/releases/0-19 https://wiki.freecad.org/Release_notes_0.19/zh;
/zh/releases/0-20 https://wiki.freecad.org/Release_notes_0.20/zh;
/zh/releases/0-21 https://wiki.freecad.org/Release_notes_0.21/zh;

Let me know if this is fully OK for you (including the path and filename of this file), then we can merge.
TIA!

@maxwxyz

maxwxyz commented Oct 21, 2026

Copy link
Copy Markdown
Contributor

@marcuspollio PR has a conflict

marcuspollio and others added 3 commits October 21, 2026 09:33
Also add old homepage URLs, and resolve targets the way the menus do. Finally, check against the allowed character set to prevent any sort of injection.
@chennes

chennes commented Oct 23, 2026

Copy link
Copy Markdown
Member

This now maps maps the non-trailing-slash form (e.g. /releases/0-17) but not the canonical-trailing-slash-form (/releases/0-17/). The trailing-slash form is the address in the sitemap. We need to also map /path in the else if $page.Params.redirect branch.

We should also decide what do do about the Code of Conduct and Privacy pages -- they are marked as Draft, so they aren't built, and their aliases aren't generated. So we need to hide them from the listings, or switch them out of draft, or something.

We should also catch the old FPN links and redirect them someplace neutral and at least somewhat useful.

I've added a new commit that takes care of all of these, @marcuspollio please give it a look. I'm still a total newb at Hugo so I'm learning as I go...

@marcuspollio marcuspollio left a comment •

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! Look good and fairly complete now.
So I just checked:

  • every internal page with a redirect to an external URL now gets listed in the map both with and without a trailing slash, which is what we want. For some reasons, I had no issues with any of the two on my side when entering the address manually (Firefox 158).
  • the codeofconduct/CODE_OF_CONDUCT and privacy/PRIVACY_POLICY combos work as expected, that is properly listed in the redirects map without their html page being built.

We now have about 600 entries in the redirects map.
When approved, I can merge. Can it be tested already on the staging environment?

@chennes

chennes commented Oct 23, 2026

Copy link
Copy Markdown
Member

I have to make one server-side change once this is merged, then we can test it on staging.

@marcuspollio
marcuspollio merged commit 721e74f into main Oct 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Config Configuration Theme Theme code and related items

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants