@@ -346,38 +346,39 @@ server {
346346
347347 # Rename output schema to dataset schema
348348 rewrite ^/platform/actors/development/actor-definition/output-schema$ /platform/actors/development/actor-definition/dataset-schema permanent;
349- rewrite ^academy/deploying-your-code/output-schema$ /academy/deploying-your-code/dataset-schema permanent;
349+ rewrite ^/ academy/deploying-your-code/output-schema$ /academy/deploying-your-code/dataset-schema permanent;
350350
351351 # Academy restructuring
352- rewrite ^academy/advanced-web-scraping/scraping-paginated-sites$ /academy/advanced-web-scraping/crawling/crawling-with-search permanent;
353- rewrite ^academy/php$ /academy/php/use -apify-from-php redirect; # not permanent in case we want to reuse /php in the future
354-
355- ; # Academy: replacing the 'Web Scraping for Beginners' course
356- ; rewrite ^academy/web-scraping-for -beginners/best-practices$
357- ; rewrite ^academy/web-scraping-for -beginners/introduction$
358- ; rewrite ^academy/web-scraping-for -beginners/challenge$
359- ; rewrite ^academy/web-scraping-for -beginners/challenge/initializing-and-setting-up$
360- ; rewrite ^academy/web-scraping-for -beginners/challenge/modularity$
361- ; rewrite ^academy/web-scraping-for -beginners/challenge/scraping-amazon$
362- ; rewrite ^academy/web-scraping-for -beginners/crawling/exporting-data$
363- ; rewrite ^academy/web-scraping-for -beginners/crawling/filtering-links$
364- ; rewrite ^academy/web-scraping-for -beginners/crawling/finding-links$
365- ; rewrite ^academy/web-scraping-for -beginners/crawling/first-crawl$
366- ; rewrite ^academy/web-scraping-for -beginners/crawling/headless-browser$
367- ; rewrite ^academy/web-scraping-for -beginners/crawling$
368- ; rewrite ^academy/web-scraping-for -beginners/crawling/pro-scraping$
369- ; rewrite ^academy/web-scraping-for -beginners/crawling/recap-extraction-basics$
370- ; rewrite ^academy/web-scraping-for -beginners/crawling/relative-urls$
371- ; rewrite ^academy/web-scraping-for -beginners/crawling/scraping-the-data$
372- ; rewrite ^academy/web-scraping-for -beginners/data-extraction/browser-devtools$
373- ; rewrite ^academy/web-scraping-for -beginners/data-extraction/computer-preparation$
374- ; rewrite ^academy/web-scraping-for -beginners/data-extraction/devtools-continued$
375- ; rewrite ^academy/web-scraping-for -beginners/data-extraction$
376- ; rewrite ^academy/web-scraping-for -beginners/data-extraction/node-continued$
377- ; rewrite ^academy/web-scraping-for -beginners/data-extraction/node-js-scraper$
378- ; rewrite ^academy/web-scraping-for -beginners/data-extraction/project-setup$
379- ; rewrite ^academy/web-scraping-for -beginners/data-extraction/save-to-csv$
380- ; rewrite ^academy/web-scraping-for -beginners/data-extraction/using-devtools$
352+ rewrite ^/academy/advanced-web-scraping/scraping-paginated-sites$ /academy/advanced-web-scraping/crawling/crawling-with-search permanent;
353+ rewrite ^/academy/php$ /academy/php/use -apify-from-php redirect; # not permanent in case we want to reuse /php in the future
354+
355+ # Academy: replacing the 'Web Scraping for Beginners' course
356+ rewrite ^/academy/web-scraping-for -beginners/best-practices$ /academy/scraping-basics-javascript?legacy-js-course=/legacy/best-practices permanent;
357+ rewrite ^/academy/web-scraping-for -beginners/introduction$ /academy/scraping-basics-javascript?legacy-js-course=/legacy/introduction permanent;
358+ rewrite ^/academy/web-scraping-for -beginners/challenge/initializing-and-setting-up$ /academy/scraping-basics-javascript?legacy-js-course=/legacy/challenge/initializing-and-setting-up permanent;
359+ rewrite ^/academy/web-scraping-for -beginners/challenge/modularity$ /academy/scraping-basics-javascript?legacy-js-course=/legacy/challenge/modularity permanent;
360+ rewrite ^/academy/web-scraping-for -beginners/challenge/scraping-amazon$ /academy/scraping-basics-javascript?legacy-js-course=/legacy/challenge/scraping-amazon permanent;
361+ rewrite ^/academy/web-scraping-for -beginners/challenge$ /academy/scraping-basics-javascript?legacy-js-course=/legacy/challenge permanent;
362+ rewrite ^/academy/web-scraping-for -beginners/crawling/exporting-data$ /academy/scraping-basics-javascript/framework?legacy-js-course=/legacy/crawling/exporting-data permanent;
363+ rewrite ^/academy/web-scraping-for -beginners/crawling/filtering-links$ /academy/scraping-basics-javascript/getting-links?legacy-js-course=/legacy/crawling/filtering-links permanent;
364+ rewrite ^/academy/web-scraping-for -beginners/crawling/finding-links$ /academy/scraping-basics-javascript/getting-links?legacy-js-course=/legacy/crawling/finding-links permanent;
365+ rewrite ^/academy/web-scraping-for -beginners/crawling/first-crawl$ /academy/scraping-basics-javascript/crawling?legacy-js-course=/legacy/crawling/first-crawl permanent;
366+ rewrite ^/academy/web-scraping-for -beginners/crawling/headless-browser$ /academy/scraping-basics-javascript?legacy-js-course=/legacy/crawling/headless-browser permanent;
367+ rewrite ^/academy/web-scraping-for -beginners/crawling/pro-scraping$ /academy/scraping-basics-javascript/framework?legacy-js-course=/legacy/crawling/pro-scraping permanent;
368+ rewrite ^/academy/web-scraping-for -beginners/crawling/recap-extraction-basics$ /academy/scraping-basics-javascript/extracting-data?legacy-js-course=/legacy/crawling/recap-extraction-basics permanent;
369+ rewrite ^/academy/web-scraping-for -beginners/crawling/relative-urls$ /academy/scraping-basics-javascript/getting-links?legacy-js-course=/legacy/crawling/relative-urls permanent;
370+ rewrite ^/academy/web-scraping-for -beginners/crawling/scraping-the-data$ /academy/scraping-basics-javascript/scraping-variants?legacy-js-course=/legacy/crawling/scraping-the-data permanent;
371+ rewrite ^/academy/web-scraping-for -beginners/crawling$ /academy/scraping-basics-javascript/crawling?legacy-js-course=/legacy/crawling permanent;
372+ rewrite ^/academy/web-scraping-for -beginners/data-extraction/browser-devtools$ /academy/scraping-basics-javascript/devtools-inspecting?legacy-js-course=/legacy/data-extraction/browser-devtools permanent;
373+ rewrite ^/academy/web-scraping-for -beginners/data-extraction/computer-preparation$ /academy/scraping-basics-javascript/downloading-html?legacy-js-course=/legacy/data-extraction/computer-preparation permanent;
374+ rewrite ^/academy/web-scraping-for -beginners/data-extraction/devtools-continued$ /academy/scraping-basics-javascript/devtools-extracting-data?legacy-js-course=/legacy/data-extraction/devtools-continued permanent;
375+ rewrite ^/academy/web-scraping-for -beginners/data-extraction/node-continued$ /academy/scraping-basics-javascript/extracting-data?legacy-js-course=/legacy/data-extraction/node-continued permanent;
376+ rewrite ^/academy/web-scraping-for -beginners/data-extraction/node-js-scraper$ /academy/scraping-basics-javascript/downloading-html?legacy-js-course=/legacy/data-extraction/node-js-scraper permanent;
377+ rewrite ^/academy/web-scraping-for -beginners/data-extraction/project-setup$ /academy/scraping-basics-javascript/downloading-html?legacy-js-course=/legacy/data-extraction/project-setup permanent;
378+ rewrite ^/academy/web-scraping-for -beginners/data-extraction/save-to-csv$ /academy/scraping-basics-javascript/saving-data?legacy-js-course=/legacy/data-extraction/save-to-csv permanent;
379+ rewrite ^/academy/web-scraping-for -beginners/data-extraction/using-devtools$ /academy/scraping-basics-javascript/devtools-locating-elements?legacy-js-course=/legacy/data-extraction/using-devtools permanent;
380+ rewrite ^/academy/web-scraping-for -beginners/data-extraction$ /academy/scraping-basics-javascript/devtools-inspecting?legacy-js-course=/legacy/data-extraction permanent;
381+ rewrite ^/academy/web-scraping-for -beginners$ /academy/scraping-basics-javascript?legacy-js-course=/legacy permanent;
381382
382383 # Removed pages
383384 # GPT plugins were discontinued April 9th, 2024 - https://help.openai.com/en/articles/8988022-winding-down-the-chatgpt-plugins-beta
0 commit comments