forked from kentcdodds/kentcdodds.com
-
Notifications
You must be signed in to change notification settings - Fork 0
/
_redirects
138 lines (124 loc) · 15.5 KB
/
_redirects
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# This is similar to netlify's _redirects file, but we're not using netlify at all
# So just keep that in mind. This is a hand-rolled thing.
# Basically, you should be able to use params as documented in path-to-regexp on both the from and to side
# These will also all apply to every HTTP method unless you specify a method as the first part of the line (comma-separated and all caps).
# I keep making this mistake 😅
/call /calls
# Just a convenience for myself
/photo https://res.cloudinary.com/kentcdodds-com/image/upload/v1625699252/kent/profile
################# lol, nice
# not a single URL actually ends in .php... or .env
/(.*).php https://www.youtube.com/watch?v=dQw4w9WgXcQ
/(.*).env https://www.youtube.com/watch?v=dQw4w9WgXcQ
/ads.txt https://www.youtube.com/watch?v=dQw4w9WgXcQ
/boaform(.*) https://www.youtube.com/watch?v=dQw4w9WgXcQ
/setup.cgi https://www.youtube.com/watch?v=dQw4w9WgXcQ
/s3cmd.ini https://www.youtube.com/watch?v=dQw4w9WgXcQ
/HNAP1(.*) https://www.youtube.com/watch?v=dQw4w9WgXcQ
# this is for phpmyadmin and php-my-admin stuff:
/php(.*) https://www.youtube.com/watch?v=dQw4w9WgXcQ
/db(.*) https://www.youtube.com/watch?v=dQw4w9WgXcQ
/sql(.*) https://www.youtube.com/watch?v=dQw4w9WgXcQ
/.git(.*) https://www.youtube.com/watch?v=dQw4w9WgXcQ
(.*)/wp-includes/(.*) https://www.youtube.com/watch?v=dQw4w9WgXcQ
/api(.*) https://www.youtube.com/watch?v=dQw4w9WgXcQ
/Autodiscover(.*) https://www.youtube.com/watch?v=dQw4w9WgXcQ
/_ignition(.*) https://www.youtube.com/watch?v=dQw4w9WgXcQ
/solr(.*) https://www.youtube.com/watch?v=dQw4w9WgXcQ
/wp-content(.*) https://www.youtube.com/watch?v=dQw4w9WgXcQ
/ReportServer(.*) https://www.youtube.com/watch?v=dQw4w9WgXcQ
/currentsetting(.*) https://www.youtube.com/watch?v=dQw4w9WgXcQ
POST,DELETE,PATCH,PUT / https://www.youtube.com/watch?v=dQw4w9WgXcQ
/webfig(.*) https://www.youtube.com/watch?v=dQw4w9WgXcQ
/config(.*) https://www.youtube.com/watch?v=dQw4w9WgXcQ
/console(.*) https://www.youtube.com/watch?v=dQw4w9WgXcQ
################ old podcast URLs:
/chats-with-kent-podcast/seasons/01/episodes/growing-your-skills-and-career-through-teaching-with-ali-spittel /chats/01/01/growing-your-skills-and-career-through-teaching-with-ali-spittel
/chats-with-kent-podcast/seasons/01/episodes/establishing-your-personal-brand-with-cassidy-williams /chats/01/02/establishing-your-personal-brand-with-cassidy-williams
/chats-with-kent-podcast/seasons/01/episodes/realigning-your-model-of-react-after-hooks-with-dan-abramov /chats/01/03/realigning-your-model-of-react-after-hooks-with-dan-abramov
/chats-with-kent-podcast/seasons/01/episodes/a-rundown-of-whats-next-for-react-with-dan-abramov /chats/01/04/a-rundown-of-whats-next-for-react-with-dan-abramov
/chats-with-kent-podcast/seasons/01/episodes/make-your-apps-resilient-finite-state-machines-with-david-khourshid /chats/01/05/make-your-apps-resilient-finite-state-machines-with-david-khourshid
/chats-with-kent-podcast/seasons/01/episodes/creating-successful-mentor-relationships-with-emma-bostian /chats/01/06/creating-successful-mentor-relationships-with-emma-bostian
/chats-with-kent-podcast/seasons/01/episodes/funding-open-source-maintainers-using-ethical-advertising-with-eric-berry /chats/01/07/funding-open-source-maintainers-using-ethical-advertising-with-eric-berry
/chats-with-kent-podcast/seasons/01/episodes/the-state-of-webassembly-with-lin-clark-and-till-schneidereit /chats/01/08/the-state-of-webassembly-with-lin-clark-and-till-schneidereit
/chats-with-kent-podcast/seasons/01/episodes/a-few-excellent-reasons-for-why-you-should-give-graphql-a-try-with-peggy-rayzis /chats/01/09/a-few-excellent-reasons-for-why-you-should-give-graphql-a-try-with-peggy-rayzis
/chats-with-kent-podcast/seasons/01/episodes/there-arent-any-shortcuts-to-expertise-with-sara-vieira /chats/01/10/there-arent-any-shortcuts-to-expertise-with-sara-vieira
/chats-with-kent-podcast/seasons/01/episodes/become-intentional-with-your-time-with-scott-hanselman /chats/01/11/become-intentional-with-your-time-with-scott-hanselman
/chats-with-kent-podcast/seasons/01/episodes/you-can-learn-a-lot-for-the-low-price-of-your-ego-with-shawn-wang /chats/01/12/you-can-learn-a-lot-for-the-low-price-of-your-ego-with-shawn-wang
/chats-with-kent-podcast/seasons/01/episodes/getting-started-with-code-live-streaming-with-suz-hinton /chats/01/13/getting-started-with-code-live-streaming-with-suz-hinton
/chats-with-kent-podcast/seasons/01/episodes/lessons-learned-from-four-major-projects-with-shirley-wu /chats/01/14/lessons-learned-from-four-major-projects-with-shirley-wu
/chats-with-kent-podcast/seasons/02/episodes/lindsey-kopacz-chats-with-kent-about-a11y /chats/02/01/lindsey-kopacz-chats-with-kent-about-a11y
/chats-with-kent-podcast/seasons/02/episodes/bianca-gandolfo-chats-with-kent-about-lifestyle-design /chats/02/02/bianca-gandolfo-chats-with-kent-about-lifestyle-design
/chats-with-kent-podcast/seasons/02/episodes/jenn-creighton-chats-with-kent-about-avoiding-an-apropcolypse /chats/02/03/jenn-creighton-chats-with-kent-about-avoiding-an-apropcolypse
/chats-with-kent-podcast/seasons/02/episodes/henry-zhu-chats-with-kent-about-the-human-side-of-open-source /chats/02/04/henry-zhu-chats-with-kent-about-the-human-side-of-open-source
/chats-with-kent-podcast/seasons/02/episodes/jen-luker-chats-with-kent-about-finding-inspiration-from-anywhere /chats/02/05/jen-luker-chats-with-kent-about-finding-inspiration-from-anywhere
/chats-with-kent-podcast/seasons/02/episodes/kelly-vaughn-chats-with-kent-about-personal-finance /chats/02/06/kelly-vaughn-chats-with-kent-about-personal-finance
/chats-with-kent-podcast/seasons/02/episodes/nader-dabit-chats-with-kent-about-keeping-an-optimistic-mindset /chats/02/07/nader-dabit-chats-with-kent-about-keeping-an-optimistic-mindset
/chats-with-kent-podcast/seasons/02/episodes/angie-jones-chats-with-kent-about-automated-visual-testing /chats/02/08/angie-jones-chats-with-kent-about-automated-visual-testing
/chats-with-kent-podcast/seasons/02/episodes/erik-rasmussen-chats-with-kent-about-maintaining-open-source-libraries /chats/02/09/erik-rasmussen-chats-with-kent-about-maintaining-open-source-libraries
/chats-with-kent-podcast/seasons/02/episodes/ken-wheeler-chats-with-kent-about-going-for-challenging-opportunities /chats/02/10/ken-wheeler-chats-with-kent-about-going-for-challenging-opportunities
/chats-with-kent-podcast/seasons/02/episodes/eve-porcello-chats-with-kent-about-sustainably-expanding-skills /chats/02/11/eve-porcello-chats-with-kent-about-sustainably-expanding-skills
/chats-with-kent-podcast/seasons/02/episodes/laurie-barth-chats-with-kent-about-growing-outside-of-your-comfort-zone /chats/02/12/laurie-barth-chats-with-kent-about-growing-outside-of-your-comfort-zone
/chats-with-kent-podcast/seasons/03/episodes/alex-anderson-creates-web-based-spaceship-controls /chats/03/01/alex-anderson-creates-web-based-spaceship-controls
/chats-with-kent-podcast/seasons/03/episodes/amelia-wattenberger-breaks-the-ux-mold /chats/03/02/amelia-wattenberger-breaks-the-ux-mold
/chats-with-kent-podcast/seasons/03/episodes/courtney-mccleve-on-developing-empathy /chats/03/03/courtney-mccleve-on-developing-empathy
/chats-with-kent-podcast/seasons/03/episodes/dr-michaela-greiler-makes-code-reviews-your-teams-superpower /chats/03/04/dr-michaela-greiler-makes-code-reviews-your-teams-superpower
/chats-with-kent-podcast/seasons/03/episodes/talia-nassi-on-testing-in-production /chats/03/05/talia-nassi-on-testing-in-production
/chats-with-kent-podcast/seasons/03/episodes/justin-mcmurdie-breaks-apps-into-micro-services /chats/03/06/justin-mcmurdie-breaks-apps-into-micro-services
/chats-with-kent-podcast/seasons/03/episodes/michael-chan-teaches-you-how-to-break-into-the-industry /chats/03/07/michael-chan-teaches-you-how-to-break-into-the-industry
/chats-with-kent-podcast/seasons/03/episodes/michael-chan-encapsulates-state /chats/03/08/michael-chan-encapsulates-state
/chats-with-kent-podcast/seasons/03/episodes/preethi-kasireddy-reinvents-herself /chats/03/09/preethi-kasireddy-reinvents-herself
/chats-with-kent-podcast/seasons/03/episodes/saron-yitbareks-path-into-tech /chats/03/10/saron-yitbareks-path-into-tech
/chats-with-kent-podcast/seasons/03/episodes/serene-yew-provides-mentorship /chats/03/11/serene-yew-provides-mentorship
/chats-with-kent-podcast/seasons/03/episodes/tanner-linsley-separates-ui-state-and-server-state /chats/03/12/tanner-linsley-separates-ui-state-and-server-state
/chats-with-kent-podcast /chats
# podcast catch-all
/chats-with-kent-podcast/seasons/:seasonNumber/:path* /chats/:seasonNumber
/workshops/past /workshops
# some people go to this page for some reason:
/post/:slug* /blog/:slug*
/rss.xml /blog/rss.xml
/feed /blog/rss.xml
/rss /blog/rss.xml
/blog/rss /blog/rss.xml
/blog/feed /blog/rss.xml
/blog/blog/rss.xml /blog/rss.xml
# no idea why, but I get a lot of 404s for this route. I'm pretty sure they're looking for Scott's post...
/bring-kindness-back-to-open-source https://www.hanselman.com/blog/bring-kindness-back-to-open-source
/humans.txt /credits
# during local dev, sometimes the service worker is installed from other apps.
/mockServiceWorker.js /404
# and I guess we've still got some zombie service workers from the old site 🤷♂️
/sw.js /404
# Gatsby site used to have stuff at this route and we don't anymore so...
/static(.*) /404
/page-data(.*) /404
# I didn't bring over my writing blog
/writing/:slug* https://kentcdodds-old.netlify.app/writing/:slug*
############################## some old redirects we should hang onto...
/blog/always-use-memo-your-context-value /blog/how-to-optimize-your-context-value
/blog/moist-programming /blog/aha-programming
/aha /blog/aha-programming
/blog/aha /blog/aha-programming
/workshops/advanced-react-component-patterns /workshops/advanced-react-patterns
/workshops/hooks /workshops/react-hooks
/workshops/build-react-apps /workshops/build-react-apps-1
/workshops/build-react-apps-advanced /workshops/build-react-apps-3
/blog/make-test-utils-for-your-app /blog/test-utils
/blog/what-code-comments-can-teach-us-about-scaling-a-codebase /blog/colocation
/blog/avoid-nesting-in-tests /blog/avoid-nesting-when-youre-testing
/podcast /chats-with-kent-podcast
/blog/state-colocation-will-make-your-app-faster /blog/state-colocation-will-make-your-react-app-faster
/blog/why-your-team-needs-testing-java-script-com /blog/why-your-team-needs-testing-javascript-com
/cohorts /clubs
/learning-clubs /clubs
/blog/how-to-write-a-react-component-in-type-script /blog/how-to-write-a-react-component-in-typescript
/blog/how-to-write-a-type-narrowing-identity-function-in-typescript /blog/how-to-write-a-constrained-identity-function-in-typescript
# Joel whoopsies
/chats-with-kent-podcast/seasons/01/episodes/01 /chats-with-kent-podcast/seasons/01/episodes/growing-your-skills-and-career-through-teaching-with-ali-spittel
# Rewritten posts
/blog/application-state-management /blog/application-state-management-with-react
/blog/how-to-start-testing /blog/how-to-add-testing-to-an-existing-project
/blog/super-simple-start-to-serverless /blog/super-simple-start-to-netlify-functions
/blog/unit-vs-integration-vs-e2e-tests /blog/static-vs-unit-vs-integration-vs-e2e-tests
/chats-with-kent-podcast/seasons/01/episodes/creating-successful-mentor-relationships-with-emma-wedekind /chats-with-kent-podcast/seasons/01/episodes/creating-successful-mentor-relationships-with-emma-bostian