mirror of
https://github.com/godotengine/godot-docs.git
synced 2026-09-03 18:14:53 +03:00
Fix redirect destination validation, partial key overrides, and multiple broken redirects.csv entries.
This commit is contained in:
1
404.rst
1
404.rst
@@ -57,6 +57,7 @@ Page not found
|
||||
const newUrl = window.location.href.replace(window.location.pathname, currentBasePath + to);
|
||||
window.location.replace(newUrl);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,21 +2,21 @@ source,destination
|
||||
/about/index.html,/index.html
|
||||
/about/troubleshooting.html,/tutorials/troubleshooting.html
|
||||
/classes/_classes.html,/classes/
|
||||
/community/tutorials/3d/mesh_generation_with_heightmap_and_shaders.html,/tutorials/3d/mesh_generation_with_heightmap_and_shaders.html
|
||||
/community/tutorials/gdnative/gdnative-c-example.html,/tutorials/plugins/gdnative/gdnative-c-example.html
|
||||
/community/tutorials/3d/mesh_generation_with_heightmap_and_shaders.html,/tutorials/3d/procedural_geometry/index.html
|
||||
/community/tutorials/gdnative/gdnative-c-example.html,/engine_details/engine_api/gdextension/gdextension_c_example.html
|
||||
/community/tutorials/gdnative/index.html,/tutorials/plugins/gdnative/index.html
|
||||
/community/tutorials/vr/index.html,/tutorials/vr/index.html
|
||||
/community/tutorials/vr/vr_primer.html,/tutorials/vr/vr_primer.html
|
||||
/community/tutorials/vr/index.html,/tutorials/xr/index.html
|
||||
/community/tutorials/vr/vr_primer.html,/tutorials/xr/index.html
|
||||
/content/3d/making_trees.html,/tutorials/content/making_trees.html
|
||||
/development/compiling/compiling_for_android.html,/engine_details/development/compiling/compiling_for_android.html
|
||||
/development/compiling/compiling_for_ios.html,/engine_details/development/compiling/compiling_for_ios.html
|
||||
/development/compiling/compiling_for_linuxbsd.html,/engine_details/development/compiling/compiling_for_linuxbsd.html
|
||||
/development/compiling/compiling_for_macos.html,/engine_details/development/compiling/compiling_for_macos.html
|
||||
/development/compiling/compiling_for_uwp.html,/engine_details/development/compiling/compiling_for_uwp.html
|
||||
/development/compiling/compiling_for_uwp.html,/about/faq.html#which-platforms-are-supported-by-godot
|
||||
/development/compiling/compiling_for_web.html,/engine_details/development/compiling/compiling_for_web.html
|
||||
/development/compiling/compiling_for_windows.html,/engine_details/development/compiling/compiling_for_windows.html
|
||||
/development/compiling/compiling_for_x11.html,/engine_details/development/compiling/compiling_for_linuxbsd.html
|
||||
/development/compiling/compiling_with_mono.html,/engine_details/development/compiling/compiling_with_mono.html
|
||||
/development/compiling/compiling_with_mono.html,/engine_details/development/compiling/compiling_with_dotnet.html
|
||||
/development/compiling/compiling_with_script_encryption_key.html,/engine_details/development/compiling/compiling_with_script_encryption_key.html
|
||||
/development/compiling/cross-compiling_for_ios_on_linux.html,/engine_details/development/compiling/cross-compiling_for_ios_on_linux.html
|
||||
/development/compiling/getting_source.html,/engine_details/development/compiling/getting_source.html
|
||||
@@ -45,21 +45,21 @@ source,destination
|
||||
/development/cpp/macos_debug.html,/engine_details/development/debugging/macos_debug.html
|
||||
/development/cpp/object_class.html,/engine_details/architecture/object_class.html
|
||||
/development/cpp/unit_testing.html,/engine_details/architecture/unit_testing.html
|
||||
/development/cpp/using_cpp_profilers.html,/engine_details/development/debugging/using_cpp_profilers.html
|
||||
/development/cpp/using_cpp_profilers.html,/engine_details/development/profiling/index.html
|
||||
/development/cpp/variant_class.html,/engine_details/architecture/variant_class.html
|
||||
/development/cpp/vulkan/index.html,/engine_details/development/debugging/vulkan/index.html
|
||||
/development/cpp/vulkan/vulkan_validation_layers.html,/engine_details/development/debugging/vulkan/vulkan_validation_layers.html
|
||||
/development/editor/creating_icons.html,/engine_details/editor/creating_icons.html
|
||||
/development/editor/index.html,/engine_details/editor/index.html
|
||||
/development/editor/introduction_to_editor_development.html,/engine_details/editor/introduction_to_editor_development.html
|
||||
/development/file_formats/gdscript_grammar.html,/engine_details/development/file_formats/gdscript_grammar.html
|
||||
/development/file_formats/index.html,/engine_details/development/file_formats/index.html
|
||||
/development/file_formats/tscn.html,/engine_details/development/file_formats/tscn.html
|
||||
/development/file_formats/gdscript_grammar.html,/engine_details/file_formats/index.html
|
||||
/development/file_formats/index.html,/engine_details/file_formats/index.html
|
||||
/development/file_formats/tscn.html,/engine_details/file_formats/tscn.html
|
||||
/development/plugins/import_plugins.html,/tutorials/plugins/editor/import_plugins.html
|
||||
/development/plugins/index.html,/tutorials/plugins/editor/index.html
|
||||
/development/plugins/making_plugins.html,/tutorials/plugins/editor/making_plugins.html
|
||||
/getting_started/editor/command_line_tutorial.html,/tutorials/editor/command_line_tutorial.html
|
||||
/getting_started/editor/default_key_mapping.html,/tutorials/editor/default_key_mapping.html
|
||||
/getting_started/editor/default_key_mapping.html,/tutorials/editor/index.html
|
||||
/getting_started/editor/external_editor.html,/tutorials/editor/external_editor.html
|
||||
/getting_started/editor/using_the_web_editor.html,/tutorials/editor/using_the_web_editor.html
|
||||
/getting_started/scripting/c_sharp/c_sharp_basics.html,/tutorials/scripting/c_sharp/c_sharp_basics.html
|
||||
@@ -77,7 +77,7 @@ source,destination
|
||||
/getting_started/scripting/gdscript/index.html,/tutorials/scripting/gdscript/index.html
|
||||
/getting_started/scripting/gdscript/static_typing.html,/tutorials/scripting/gdscript/static_typing.html
|
||||
/getting_started/scripting/gdscript/warning_system.html,/tutorials/scripting/gdscript/warning_system.html
|
||||
/getting_started/step_by_step/exporting.html,/tutorials/export/exporting_basics.html
|
||||
/getting_started/step_by_step/exporting.html,/tutorials/export/exporting_projects.html
|
||||
/getting_started/step_by_step/filesystem.html,/tutorials/scripting/filesystem.html
|
||||
/getting_started/step_by_step/godot_design_philosophy.html,/getting_started/introduction/godot_design_philosophy.html
|
||||
/getting_started/step_by_step/resources.html,/tutorials/scripting/resources.html
|
||||
@@ -96,7 +96,7 @@ source,destination
|
||||
/getting_started/workflow/assets/importing_scenes.html,/tutorials/assets_pipeline/importing_scenes.html
|
||||
/getting_started/workflow/assets/importing_translations.html,/tutorials/assets_pipeline/importing_translations.html
|
||||
/getting_started/workflow/assets/index.html,/tutorials/assets_pipeline/index.html
|
||||
/getting_started/workflow/best_practices/autoloads_versus_internal_nodes.html,/tutorials/best_practices/autoloads_versus_internal_nodes.html
|
||||
/getting_started/workflow/best_practices/autoloads_versus_internal_nodes.html,/tutorials/best_practices/autoloads_versus_regular_nodes.html
|
||||
/getting_started/workflow/best_practices/data_preferences.html,/tutorials/best_practices/data_preferences.html
|
||||
/getting_started/workflow/best_practices/godot_interfaces.html,/tutorials/best_practices/godot_interfaces.html
|
||||
/getting_started/workflow/best_practices/godot_notifications.html,/tutorials/best_practices/godot_notifications.html
|
||||
@@ -121,89 +121,89 @@ source,destination
|
||||
/getting_started/workflow/export/one-click_deploy.html,/tutorials/export/one-click_deploy.html
|
||||
/getting_started/workflow/project_setup/project_organization.html,/tutorials/best_practices/project_organization.html
|
||||
/getting_started/workflow/project_setup/version_control_systems.html,/tutorials/best_practices/version_control_systems.html
|
||||
/learning/editor/2d_and_3d_keybindings.html,/getting_started/editor/2d_and_3d_keybindings.html
|
||||
/learning/editor/2d_and_3d_keybindings.html,/tutorials/editor/index.html
|
||||
/learning/editor/command_line_tutorial.html,/getting_started/editor/command_line_tutorial.html
|
||||
/learning/editor/index.html,/getting_started/editor/index.html
|
||||
/learning/editor/unity_to_godot.html,/getting_started/editor/unity_to_godot.html
|
||||
/learning/features/2d/,/tutorials/2d/_2d.html
|
||||
/learning/editor/index.html,/tutorials/editor/index.html
|
||||
/learning/editor/unity_to_godot.html,/getting_started/introduction/index.html
|
||||
/learning/features/2d/,/tutorials/2d/index.html
|
||||
/learning/features/2d/2d_transforms.html,/tutorials/2d/2d_transforms.html
|
||||
/learning/features/2d/canvas_layers.html,/tutorials/2d/canvas_layers.html
|
||||
/learning/features/2d/custom_drawing_in_2d.html,/tutorials/2d/custom_drawing_in_2d.html
|
||||
/learning/features/2d/index.html,/tutorials/2d/index.html
|
||||
/learning/features/2d/particle_systems_2d.html,/tutorials/2d/particle_systems_2d.html
|
||||
/learning/features/2d/using_tilemaps.html,/tutorials/2d/using_tilemaps.html
|
||||
/learning/features/3d/,/tutorials/3d/_3d.html
|
||||
/learning/features/3d/3d_performance_and_limitations.html,/tutorials/3d/3d_performance_and_limitations.html
|
||||
/learning/features/3d/baked_lightmaps.html,/tutorials/3d/baked_lightmaps.html
|
||||
/learning/features/3d/,/tutorials/3d/index.html
|
||||
/learning/features/3d/3d_performance_and_limitations.html,/tutorials/3d/3d_rendering_limitations.html
|
||||
/learning/features/3d/baked_lightmaps.html,/tutorials/3d/global_illumination/using_lightmap_gi.html
|
||||
/learning/features/3d/environment_and_post_processing.html,/tutorials/3d/environment_and_post_processing.html
|
||||
/learning/features/3d/fixed_materials.html,/tutorials/3d/fixed_materials.html
|
||||
/learning/features/3d/gi_probes.html,/tutorials/3d/gi_probes.html
|
||||
/learning/features/3d/fixed_materials.html,/tutorials/3d/standard_material_3d.html
|
||||
/learning/features/3d/gi_probes.html,/tutorials/3d/global_illumination/using_voxel_gi.html
|
||||
/learning/features/3d/high_dynamic_range.html,/tutorials/3d/high_dynamic_range.html
|
||||
/learning/features/3d/importing_3d_meshes.html,/tutorials/3d/importing_3d_meshes.html
|
||||
/learning/features/3d/importing_3d_scenes.html,/tutorials/3d/importing_3d_scenes.html
|
||||
/learning/features/3d/importing_3d_meshes.html,/tutorials/assets_pipeline/importing_3d_scenes/index.html
|
||||
/learning/features/3d/importing_3d_scenes.html,/tutorials/assets_pipeline/importing_3d_scenes/index.html
|
||||
/learning/features/3d/index.html,/tutorials/3d/index.html
|
||||
/learning/features/3d/introduction_to_3d.html,/tutorials/3d/introduction_to_3d.html
|
||||
/learning/features/3d/lights_and_shadows.html,/tutorials/3d/lights_and_shadows.html
|
||||
/learning/features/3d/materials.html,/tutorials/3d/materials.html
|
||||
/learning/features/3d/materials.html,/tutorials/3d/standard_material_3d.html
|
||||
/learning/features/3d/reflection_probes.html,/tutorials/3d/reflection_probes.html
|
||||
/learning/features/3d/spatial_material.html,/tutorials/3d/spatial_material.html
|
||||
/learning/features/3d/using_gridmaps.html,/tutorials/3d/using_gridmaps.html
|
||||
/learning/features/animation/cutout_animation.html,/tutorials/animation/cutout_animation.html
|
||||
/learning/features/animation/index.html,/tutorials/animation/index.html
|
||||
/learning/features/animation/introduction_2d.html,/tutorials/animation/introduction_2d.html
|
||||
/learning/features/animation/introduction_2d.html,/tutorials/animation/introduction.html
|
||||
/learning/features/assetlib/index.html,/tutorials/assetlib/index.html
|
||||
/learning/features/assetlib/uploading_to_assetlib.html,/tutorials/assetlib/uploading_to_assetlib.html
|
||||
/learning/features/assetlib/uploading_to_assetlib.html,/community/asset_library/submitting_to_assetlib.html
|
||||
/learning/features/assetlib/using_assetlib.html,/tutorials/assetlib/using_assetlib.html
|
||||
/learning/features/assetlib/what_is_assetlib.html,/tutorials/assetlib/what_is_assetlib.html
|
||||
/learning/features/audio/audio_buses.html,/tutorials/audio/audio_buses.html
|
||||
/learning/features/audio/audio_streams.html,/tutorials/audio/audio_streams.html
|
||||
/learning/features/audio/index.html,/tutorials/audio/index.html
|
||||
/learning/features/gui/,/tutorials/2d/_2d_gui.html
|
||||
/learning/features/gui/,/tutorials/ui/index.html
|
||||
/learning/features/gui/bbcode_in_richtextlabel.html,/tutorials/gui/bbcode_in_richtextlabel.html
|
||||
/learning/features/gui/custom_gui_controls.html,/tutorials/gui/custom_gui_controls.html
|
||||
/learning/features/gui/gui_skinning.html,/tutorials/gui/gui_skinning.html
|
||||
/learning/features/gui/index.html,/tutorials/gui/index.html
|
||||
/learning/features/gui/gui_skinning.html,/tutorials/ui/gui_skinning.html
|
||||
/learning/features/gui/index.html,/tutorials/ui/index.html
|
||||
/learning/features/gui/size_and_anchors.html,/tutorials/gui/size_and_anchors.html
|
||||
/learning/features/inputs/index.html,/tutorials/inputs/index.html
|
||||
/learning/features/inputs/inputevent.html,/tutorials/inputs/inputevent.html
|
||||
/learning/features/inputs/mouse_and_input_coordinates.html,/tutorials/inputs/mouse_and_input_coordinates.html
|
||||
/learning/features/lighting/lighting.html,/tutorials/3d/lighting.html
|
||||
/learning/features/lighting/shadow_mapping.html,/tutorials/3d/shadow_mapping.html
|
||||
/learning/features/math/,/tutorials/_math.html
|
||||
/learning/features/lighting/lighting.html,/tutorials/3d/lights_and_shadows.html
|
||||
/learning/features/lighting/shadow_mapping.html,/tutorials/3d/lights_and_shadows.html
|
||||
/learning/features/math/,/tutorials/math/index.html
|
||||
/learning/features/math/index.html,/tutorials/math/index.html
|
||||
/learning/features/math/matrices_and_transforms.html,/tutorials/math/matrices_and_transforms.html
|
||||
/learning/features/math/vector_math.html,/tutorials/math/vector_math.html
|
||||
/learning/features/math/vectors_advanced.html,/tutorials/math/vectors_advanced.html
|
||||
/learning/features/misc/,/tutorials/_misc_tutorials.html
|
||||
/learning/features/misc/,/tutorials/index.html
|
||||
/learning/features/misc/background_loading.html,/tutorials/misc/background_loading.html
|
||||
/learning/features/misc/binary_serialization_api.html,/tutorials/misc/binary_serialization_api.html
|
||||
/learning/features/misc/data_paths.html,/tutorials/misc/data_paths.html
|
||||
/learning/features/misc/encrypting_save_games.html,/tutorials/misc/encrypting_save_games.html
|
||||
/learning/features/misc/encrypting_save_games.html,/tutorials/io/saving_games.html
|
||||
/learning/features/misc/handling_quit_requests.html,/tutorials/misc/handling_quit_requests.html
|
||||
/learning/features/misc/index.html,/tutorials/misc/index.html
|
||||
/learning/features/misc/index.html,/tutorials/index.html
|
||||
/learning/features/misc/internationalizing_games.html,/tutorials/misc/internationalizing_games.html
|
||||
/learning/features/misc/locales.html,/tutorials/misc/locales.html
|
||||
/learning/features/misc/pausing_games.html,/tutorials/misc/pausing_games.html
|
||||
/learning/features/misc/saving_games.html,/tutorials/misc/saving_games.html
|
||||
/learning/features/networking/,/tutorials/_networking.html
|
||||
/learning/features/networking/,/tutorials/networking/index.html
|
||||
/learning/features/networking/high_level_multiplayer.html,/tutorials/networking/high_level_multiplayer.html
|
||||
/learning/features/networking/http_client_class.html,/tutorials/networking/http_client_class.html
|
||||
/learning/features/networking/index.html,/tutorials/networking/index.html
|
||||
/learning/features/networking/ssl_certificates.html,/tutorials/networking/ssl_certificates.html
|
||||
/learning/features/physics/,/tutorials/2d/_2d_physics.html
|
||||
/learning/features/physics/,/tutorials/physics/index.html
|
||||
/learning/features/physics/index.html,/tutorials/physics/index.html
|
||||
/learning/features/physics/kinematic_character_2d.html,/tutorials/physics/kinematic_character_2d.html
|
||||
/learning/features/physics/physics_introduction.html,/tutorials/physics/physics_introduction.html
|
||||
/learning/features/physics/ray-casting.html,/tutorials/physics/ray-casting.html
|
||||
/learning/features/platform/android_in_app_purchases.html,/tutorials/platform/android_in_app_purchases.html
|
||||
/learning/features/platform/index.html,/tutorials/platform/index.html
|
||||
/learning/features/platform/services_for_ios.html,/tutorials/platform/services_for_ios.html
|
||||
/learning/features/shading/,/tutorials/_shaders.html
|
||||
/learning/features/platform/services_for_ios.html,/tutorials/platform/ios/index.html
|
||||
/learning/features/shading/,/tutorials/shaders/index.html
|
||||
/learning/features/shading/index.html,/tutorials/shading/index.html
|
||||
/learning/features/shading/screen-reading_shaders.html,/tutorials/shading/screen-reading_shaders.html
|
||||
/learning/features/shading/shader_materials.html,/tutorials/shading/shader_materials.html
|
||||
/learning/features/shading/shading_language.html,/tutorials/shading/shading_language.html
|
||||
/learning/features/viewports/index.html,/tutorials/viewports/index.html
|
||||
/learning/features/shading/shader_materials.html,/tutorials/shaders/index.html
|
||||
/learning/features/shading/shading_language.html,/tutorials/shaders/shader_reference/shading_language.html
|
||||
/learning/features/viewports/index.html,/tutorials/rendering/viewports.html
|
||||
/learning/features/viewports/multiple_resolutions.html,/tutorials/viewports/multiple_resolutions.html
|
||||
/learning/features/viewports/viewports.html,/tutorials/viewports/viewports.html
|
||||
/learning/scripting/c_sharp/c_sharp_basics.html,/getting_started/scripting/c_sharp/c_sharp_basics.html
|
||||
@@ -215,77 +215,77 @@ source,destination
|
||||
/learning/scripting/gdscript/gdscript_format_string.html,/getting_started/scripting/gdscript/gdscript_format_string.html
|
||||
/learning/scripting/gdscript/gdscript_styleguide.html,/getting_started/scripting/gdscript/gdscript_styleguide.html
|
||||
/learning/scripting/gdscript/index.html,/getting_started/scripting/gdscript/index.html
|
||||
/learning/scripting/index.html,/getting_started/scripting/index.html
|
||||
/learning/scripting/visual_script/getting_started.html,/getting_started/scripting/visual_script/getting_started.html
|
||||
/learning/scripting/visual_script/index.html,/getting_started/scripting/visual_script/index.html
|
||||
/learning/scripting/visual_script/nodes_purposes.html,/getting_started/scripting/visual_script/nodes_purposes.html
|
||||
/learning/scripting/visual_script/what_is_visual_scripting.html,/getting_started/scripting/visual_script/what_is_visual_scripting.html
|
||||
/learning/step_by_step/,/tutorials/step_by_step/_step_by_step.html
|
||||
/learning/step_by_step/animations.html,/getting_started/step_by_step/animations.html
|
||||
/learning/scripting/index.html,/tutorials/scripting/index.html
|
||||
/learning/scripting/visual_script/getting_started.html,/tutorials/scripting/index.html
|
||||
/learning/scripting/visual_script/index.html,/tutorials/scripting/index.html
|
||||
/learning/scripting/visual_script/nodes_purposes.html,/tutorials/scripting/index.html
|
||||
/learning/scripting/visual_script/what_is_visual_scripting.html,/tutorials/scripting/index.html
|
||||
/learning/step_by_step/,/getting_started/step_by_step/index.html
|
||||
/learning/step_by_step/animations.html,/tutorials/animation/introduction.html
|
||||
/learning/step_by_step/filesystem.html,/getting_started/step_by_step/filesystem.html
|
||||
/learning/step_by_step/godot_design_philosophy.html,/getting_started/step_by_step/godot_design_philosophy.html
|
||||
/learning/step_by_step/gui_tutorial.html,/tutorials/step_by_step/gui_tutorial.html
|
||||
/learning/step_by_step/gui_tutorial.html,/tutorials/ui/index.html
|
||||
/learning/step_by_step/index.html,/getting_started/step_by_step/index.html
|
||||
/learning/step_by_step/instancing.html,/getting_started/step_by_step/instancing.html
|
||||
/learning/step_by_step/instancing_continued.html,/getting_started/step_by_step/instancing_continued.html
|
||||
/learning/step_by_step/intro_to_the_editor_interface.html,/getting_started/step_by_step/intro_to_the_editor_interface.html
|
||||
/learning/step_by_step/instancing_continued.html,/getting_started/step_by_step/instancing.html
|
||||
/learning/step_by_step/intro_to_the_editor_interface.html,/getting_started/introduction/first_look_at_the_editor.html
|
||||
/learning/step_by_step/resources.html,/getting_started/step_by_step/resources.html
|
||||
/learning/step_by_step/scene_tree.html,/getting_started/step_by_step/scene_tree.html
|
||||
/learning/step_by_step/scenes_and_nodes.html,/getting_started/step_by_step/scenes_and_nodes.html
|
||||
/learning/step_by_step/scripting.html,/getting_started/step_by_step/scripting.html
|
||||
/learning/step_by_step/scripting_continued.html,/getting_started/step_by_step/scripting_continued.html
|
||||
/learning/step_by_step/simple_2d_game.html,/tutorials/step_by_step/simple_2d_game.html
|
||||
/learning/step_by_step/scenes_and_nodes.html,/getting_started/step_by_step/nodes_and_scenes.html
|
||||
/learning/step_by_step/scripting.html,/getting_started/step_by_step/scripting_first_script.html
|
||||
/learning/step_by_step/scripting_continued.html,/getting_started/step_by_step/scripting_player_input.html
|
||||
/learning/step_by_step/simple_2d_game.html,/getting_started/first_2d_game/index.html
|
||||
/learning/step_by_step/singletons_autoload.html,/getting_started/step_by_step/singletons_autoload.html
|
||||
/learning/step_by_step/splash_screen.html,/getting_started/step_by_step/splash_screen.html
|
||||
/learning/step_by_step/ui_code_a_life_bar.html,/getting_started/step_by_step/ui_code_a_life_bar.html
|
||||
/learning/step_by_step/ui_game_user_interface.html,/getting_started/step_by_step/ui_game_user_interface.html
|
||||
/learning/step_by_step/ui_introduction_to_the_ui_system.html,/getting_started/step_by_step/ui_introduction_to_the_ui_system.html
|
||||
/learning/step_by_step/ui_main_menu.html,/getting_started/step_by_step/ui_main_menu.html
|
||||
/learning/step_by_step/your_first_game.html,/getting_started/step_by_step/your_first_game.html
|
||||
/learning/workflow/,/tutorials/asset_pipeline/_asset_pipeline.html
|
||||
/learning/workflow/assets/,/tutorials/asset_pipeline/_import.html
|
||||
/learning/workflow/assets/exporting_images.html,/tutorials/asset_pipeline/exporting_images.html
|
||||
/learning/step_by_step/splash_screen.html,/getting_started/step_by_step/index.html
|
||||
/learning/step_by_step/ui_code_a_life_bar.html,/tutorials/ui/index.html
|
||||
/learning/step_by_step/ui_game_user_interface.html,/tutorials/ui/index.html
|
||||
/learning/step_by_step/ui_introduction_to_the_ui_system.html,/tutorials/ui/index.html
|
||||
/learning/step_by_step/ui_main_menu.html,/tutorials/ui/index.html
|
||||
/learning/step_by_step/your_first_game.html,/getting_started/first_2d_game/index.html
|
||||
/learning/workflow/,/tutorials/assets_pipeline/index.html
|
||||
/learning/workflow/assets/,/tutorials/assets_pipeline/index.html
|
||||
/learning/workflow/assets/exporting_images.html,/tutorials/assets_pipeline/index.html
|
||||
/learning/workflow/assets/import_process.html,/getting_started/workflow/assets/import_process.html
|
||||
/learning/workflow/assets/importing_audio_samples.html,/getting_started/workflow/assets/importing_audio_samples.html
|
||||
/learning/workflow/assets/importing_fonts.html,/tutorials/asset_pipeline/importing_fonts.html
|
||||
/learning/workflow/assets/importing_fonts.html,/tutorials/ui/gui_using_fonts.html
|
||||
/learning/workflow/assets/importing_images.html,/getting_started/workflow/assets/importing_images.html
|
||||
/learning/workflow/assets/importing_scenes.html,/getting_started/workflow/assets/importing_scenes.html
|
||||
/learning/workflow/assets/importing_textures.html,/tutorials/asset_pipeline/importing_textures.html
|
||||
/learning/workflow/assets/importing_textures.html,/tutorials/assets_pipeline/importing_images.html
|
||||
/learning/workflow/assets/importing_translations.html,/getting_started/workflow/assets/importing_translations.html
|
||||
/learning/workflow/assets/index.html,/getting_started/workflow/assets/index.html
|
||||
/learning/workflow/assets/managing_image_files.html,/tutorials/asset_pipeline/managing_image_files.html
|
||||
/learning/workflow/export/,/tutorials/asset_pipeline/_export.html
|
||||
/learning/workflow/export/customizing_html5_shell.html,/getting_started/workflow/export/customizing_html5_shell.html
|
||||
/learning/workflow/assets/managing_image_files.html,/tutorials/assets_pipeline/importing_images.html
|
||||
/learning/workflow/export/,/tutorials/export/index.html
|
||||
/learning/workflow/export/customizing_html5_shell.html,/tutorials/platform/web/customizing_html5_shell.html
|
||||
/learning/workflow/export/exporting_for_android.html,/getting_started/workflow/export/exporting_for_android.html
|
||||
/learning/workflow/export/exporting_for_ios.html,/getting_started/workflow/export/exporting_for_ios.html
|
||||
/learning/workflow/export/exporting_for_pc.html,/getting_started/workflow/export/exporting_for_pc.html
|
||||
/learning/workflow/export/exporting_for_pc.html,/tutorials/export/index.html
|
||||
/learning/workflow/export/exporting_for_uwp.html,/getting_started/workflow/export/exporting_for_uwp.html
|
||||
/learning/workflow/export/exporting_for_web.html,/getting_started/workflow/export/exporting_for_web.html
|
||||
/learning/workflow/export/exporting_projects.html,/getting_started/workflow/export/exporting_projects.html
|
||||
/learning/workflow/export/feature_tags.html,/getting_started/workflow/export/feature_tags.html
|
||||
/learning/workflow/export/index.html,/getting_started/workflow/export/index.html
|
||||
/learning/workflow/export/one-click_deploy.html,/getting_started/workflow/export/one-click_deploy.html
|
||||
/learning/workflow/index.html,/getting_started/workflow/index.html
|
||||
/learning/workflow/project_setup/index.html,/getting_started/workflow/project_setup/index.html
|
||||
/learning/workflow/index.html,/tutorials/index.html
|
||||
/learning/workflow/project_setup/index.html,/tutorials/best_practices/project_organization.html
|
||||
/learning/workflow/project_setup/project_organization.html,/getting_started/workflow/project_setup/project_organization.html
|
||||
/reference/2d_and_3d_keybindings.html,/learning/editor/2d_and_3d_keybindings.html
|
||||
/reference/_compiling.html,/development/compiling/
|
||||
/reference/_developing.html,/development/cpp/
|
||||
/reference/2d_and_3d_keybindings.html,/tutorials/editor/index.html
|
||||
/reference/_compiling.html,/engine_details/development/compiling/index.html
|
||||
/reference/_developing.html,/engine_details/development/index.html
|
||||
/reference/android_in_app_purchases.html,/learning/features/platform/android_in_app_purchases.html
|
||||
/reference/batch_building_templates.html,/development/compiling/batch_building_templates.html
|
||||
/reference/batch_building_templates.html,/engine_details/development/compiling/index.html
|
||||
/reference/bbcode_in_richtextlabel.html,/learning/features/gui/bbcode_in_richtextlabel.html
|
||||
/reference/binary_serialization_api.html,/learning/features/misc/binary_serialization_api.html
|
||||
/reference/command_line_tutorial.html,/learning/editor/command_line_tutorial.html
|
||||
/reference/compiling_for_android.html,/development/compiling/compiling_for_android.html
|
||||
/reference/compiling_for_ios.html,/development/compiling/compiling_for_ios.html
|
||||
/reference/compiling_for_osx.html,/development/compiling/compiling_for_osx.html
|
||||
/reference/compiling_for_osx.html,/engine_details/development/compiling/compiling_for_macos.html
|
||||
/reference/compiling_for_uwp.html,/development/compiling/compiling_for_uwp.html
|
||||
/reference/compiling_for_web.html,/development/compiling/compiling_for_web.html
|
||||
/reference/compiling_for_windows.html,/development/compiling/compiling_for_windows.html
|
||||
/reference/compiling_for_x11.html,/development/compiling/compiling_for_x11.html
|
||||
/reference/configuring_an_ide.html,/development/cpp/configuring_an_ide.html
|
||||
/reference/configuring_an_ide.html,/engine_details/development/configuring_an_ide/index.html
|
||||
/reference/core_types.html,/development/cpp/core_types.html
|
||||
/reference/creating_android_modules.html,/development/cpp/creating_android_modules.html
|
||||
/reference/creating_android_modules.html,/tutorials/platform/android/android_plugin.html
|
||||
/reference/cross-compiling_for_ios_on_linux.html,/development/compiling/cross-compiling_for_ios_on_linux.html
|
||||
/reference/custom_modules_in_c++.html,/development/cpp/custom_modules_in_cpp.html
|
||||
/reference/faq.html,/about/faq.html
|
||||
@@ -297,14 +297,14 @@ source,destination
|
||||
/reference/introduction_to_the_buildsystem.html,/development/compiling/introduction_to_the_buildsystem.html
|
||||
/reference/locales.html,/learning/features/misc/locales.html
|
||||
/reference/object_class.html,/development/cpp/object_class.html
|
||||
/reference/packaging_godot.html,/development/compiling/packaging_godot.html
|
||||
/reference/services_for_ios.html,/learning/features/platform/services_for_ios.html
|
||||
/reference/shading_language.html,/learning/features/shading/shading_language.html
|
||||
/reference/unity_to_godot.html,/learning/editor/unity_to_godot.html
|
||||
/reference/packaging_godot.html,/engine_details/development/compiling/index.html
|
||||
/reference/services_for_ios.html,/tutorials/platform/ios/index.html
|
||||
/reference/shading_language.html,/tutorials/shaders/shader_reference/shading_language.html
|
||||
/reference/unity_to_godot.html,/getting_started/introduction/index.html
|
||||
/reference/variant_class.html,/development/cpp/variant_class.html
|
||||
/tutorials/3d/faking_global_illumination.html,/tutorials/3d/global_illumination/faking_global_illumination.html
|
||||
/tutorials/3d/introduction_to_global_illumination.html,/tutorials/3d/global_illumination/introduction_to_global_illumination.html
|
||||
/tutorials/3d/inverse_kinematics.html,/community/tutorials/3d/inverse_kinematics.html
|
||||
/tutorials/3d/inverse_kinematics.html,/tutorials/animation/index.html
|
||||
/tutorials/3d/procedural_geometry/immediategeometry.html,/tutorials/3d/procedural_geometry/immediatemesh.html
|
||||
/tutorials/3d/reflection_probes.html,/tutorials/3d/global_illumination/reflection_probes.html
|
||||
/tutorials/3d/sdfgi.html,/tutorials/3d/global_illumination/using_sdfgi.html
|
||||
@@ -314,10 +314,10 @@ source,destination
|
||||
/tutorials/3d/vertex_animation/animating_thousands_of_fish.html,/tutorials/performance/vertex_animation/animating_thousands_of_fish.html
|
||||
/tutorials/3d/vertex_animation/controlling_thousands_of_fish.html,/tutorials/performance/vertex_animation/controlling_thousands_of_fish.html
|
||||
/tutorials/3d/vertex_animation/index.html,/tutorials/performance/vertex_animation/index.html
|
||||
/tutorials/3d/working_with_3d_skeletons.html,/community/tutorials/3d/working_with_3d_skeletons.html
|
||||
/tutorials/_plugins.html,/development/plugins/
|
||||
/tutorials/3d/working_with_3d_skeletons.html,/tutorials/animation/index.html
|
||||
/tutorials/_plugins.html,/tutorials/plugins/index.html
|
||||
/tutorials/assetlib/index.html,/community/asset_library/index.html
|
||||
/tutorials/assetlib/uploading_to_assetlib.html,/community/asset_library/uploading_to_assetlib.html
|
||||
/tutorials/assetlib/uploading_to_assetlib.html,/community/asset_library/submitting_to_assetlib.html
|
||||
/tutorials/assetlib/using_assetlib.html,/community/asset_library/using_assetlib.html
|
||||
/tutorials/assetlib/what_is_assetlib.html,/community/asset_library/what_is_assetlib.html
|
||||
/tutorials/assets_pipeline/importing_scenes.html,/tutorials/assets_pipeline/importing_3d_scenes/index.html
|
||||
@@ -338,13 +338,13 @@ source,destination
|
||||
/tutorials/gui/size_and_anchors.html,/tutorials/ui/size_and_anchors.html
|
||||
/tutorials/legal/complying_with_licenses.html,/about/complying_with_licenses.html
|
||||
/tutorials/making_plugins.html,/development/plugins/making_plugins.html
|
||||
/tutorials/mesh_generation_with_heightmap_and_shaders.html,/community/tutorials/3d/mesh_generation_with_heightmap_and_shaders.html
|
||||
/tutorials/mesh_generation_with_heightmap_and_shaders.html,/tutorials/3d/procedural_geometry/index.html
|
||||
/tutorials/misc/background_loading.html,/tutorials/io/background_loading.html
|
||||
/tutorials/misc/binary_serialization_api.html,/tutorials/io/binary_serialization_api.html
|
||||
/tutorials/misc/change_scenes_manually.html,/tutorials/scripting/change_scenes_manually.html
|
||||
/tutorials/misc/data_paths.html,/tutorials/io/data_paths.html
|
||||
/tutorials/misc/encrypting_save_games.html,/tutorials/io/encrypting_save_games.html
|
||||
/tutorials/misc/gles2_gles3_differences.html,/tutorials/rendering/gles2_gles3_differences.html
|
||||
/tutorials/misc/encrypting_save_games.html,/tutorials/io/saving_games.html
|
||||
/tutorials/misc/gles2_gles3_differences.html,/tutorials/rendering/renderers.html
|
||||
/tutorials/misc/handling_quit_requests.html,/tutorials/inputs/handling_quit_requests.html
|
||||
/tutorials/misc/instancing_with_signals.html,/tutorials/scripting/instancing_with_signals.html
|
||||
/tutorials/misc/internationalizing_games.html,/tutorials/i18n/internationalizing_games.html
|
||||
@@ -353,9 +353,7 @@ source,destination
|
||||
/tutorials/misc/pausing_games.html,/tutorials/scripting/pausing_games.html
|
||||
/tutorials/misc/running_code_in_the_editor.html,/tutorials/plugins/running_code_in_the_editor.html
|
||||
/tutorials/misc/saving_games.html,/tutorials/io/saving_games.html
|
||||
/tutorials/navigation/navigation_using_navigationobstacles.html#static-obstacles,/tutorials/navigation/navigation_using_navigationobstacles.html#static-avoidance-obstacles
|
||||
/tutorials/navigation/navigation_using_navigationobstacles.html#static-obstacles,/tutorials/navigation/navigation_using_navigationobstacles.html#dynamic-avoidance-obstacles
|
||||
/tutorials/optimization/batching.html,/tutorials/performance/batching.html
|
||||
/tutorials/optimization/batching.html,/tutorials/performance/index.html
|
||||
/tutorials/optimization/cpu_optimization.html,/tutorials/performance/cpu_optimization.html
|
||||
/tutorials/optimization/general_optimization.html,/tutorials/performance/general_optimization.html
|
||||
/tutorials/optimization/gpu_optimization.html,/tutorials/performance/gpu_optimization.html
|
||||
@@ -371,20 +369,20 @@ source,destination
|
||||
/tutorials/plugins/android/android_plugin.html,/tutorials/platform/android/android_plugin.html
|
||||
/tutorials/plugins/android/index.html,/tutorials/platform/android/index.html
|
||||
/tutorials/plugins/editor/spatial_gizmos.html,/tutorials/plugins/editor/3d_gizmos.html
|
||||
/tutorials/plugins/gdnative/gdnative-c-example.html,/tutorials/scripting/gdnative/gdnative_c_example.html
|
||||
/tutorials/plugins/gdnative/gdnative-cpp-example.html,/tutorials/scripting/gdnative/gdnative_cpp_example.html
|
||||
/tutorials/plugins/gdnative/gdnative-c-example.html,/engine_details/engine_api/gdextension/gdextension_c_example.html
|
||||
/tutorials/plugins/gdnative/gdnative-cpp-example.html,/tutorials/scripting/cpp/gdextension_cpp_example.html
|
||||
/tutorials/plugins/gdnative/index.html,/tutorials/scripting/gdnative/index.html
|
||||
/tutorials/plugins/gdextension/gdextension_cpp_example.html,/tutorials/plugins/cpp/gdextension_cpp_example.html
|
||||
/tutorials/scripting/gdnative/gdnative_c_example.html,/tutorials/plugins/cpp/gdextension_cpp_example.html
|
||||
/tutorials/scripting/gdnative/gdnative_cpp_example.html,/tutorials/plugins/cpp/gdextension_cpp_example.html
|
||||
/tutorials/plugins/gdextension/gdextension_cpp_example.html,/tutorials/scripting/cpp/gdextension_cpp_example.html
|
||||
/tutorials/scripting/gdnative/gdnative_c_example.html,/engine_details/engine_api/gdextension/gdextension_c_example.html
|
||||
/tutorials/scripting/gdnative/gdnative_cpp_example.html,/tutorials/scripting/cpp/gdextension_cpp_example.html
|
||||
/tutorials/scripting/gdnative/index.html,/tutorials/scripting/gdextension/index.html
|
||||
/tutorials/scripting/gdnative/what_is_gdnative.html,/tutorials/scripting/gdnative/what_is_gdextension.html
|
||||
/tutorials/scripting/gdnative/what_is_gdnative.html,/engine_details/engine_api/gdextension/what_is_gdextension.html
|
||||
/tutorials/shading/advanced_postprocessing.html,/tutorials/shaders/advanced_postprocessing.html
|
||||
/tutorials/shading/godot_shader_language_style_guide.html,/tutorials/shaders/shaders_style_guide.html
|
||||
/tutorials/shading/index.html,/tutorials/shaders/index.html
|
||||
/tutorials/shading/migrating_to_godot_shader_language.html,/tutorials/shaders/converting_glsl_to_godot_shaders.html
|
||||
/tutorials/shading/screen-reading_shaders.html,/tutorials/shaders/screen-reading_shaders.html
|
||||
/tutorials/shading/shader_materials.html,/tutorials/shaders/shader_materials.html
|
||||
/tutorials/shading/shader_materials.html,/tutorials/shaders/index.html
|
||||
/tutorials/shading/shading_reference/canvas_item_shader.html,/tutorials/shaders/shader_reference/canvas_item_shader.html
|
||||
/tutorials/shading/shading_reference/index.html,/tutorials/shaders/shader_reference/index.html
|
||||
/tutorials/shading/shading_reference/particle_shader.html,/tutorials/shaders/shader_reference/particle_shader.html
|
||||
@@ -393,8 +391,8 @@ source,destination
|
||||
/tutorials/shading/visual_shaders.html,/tutorials/shaders/visual_shaders.html
|
||||
/tutorials/shading/your_first_shader/index.html,/tutorials/shaders/your_first_shader/index.html
|
||||
/tutorials/shading/your_first_shader/your_second_spatial_shader.html,/tutorials/shaders/your_first_shader/your_second_3d_shader.html
|
||||
/tutorials/threads/thread_safe_apis.html,/tutorials/performance/threads/thread_safe_apis.html
|
||||
/tutorials/threads/using_multiple_threads.html,/tutorials/performance/threads/using_multiple_threads.html
|
||||
/tutorials/threads/thread_safe_apis.html,/tutorials/performance/thread_safe_apis.html
|
||||
/tutorials/threads/using_multiple_threads.html,/tutorials/performance/using_multiple_threads.html
|
||||
/tutorials/viewports/custom_postprocessing.html,/tutorials/shaders/custom_postprocessing.html
|
||||
/tutorials/viewports/multiple_resolutions.html,/tutorials/rendering/multiple_resolutions.html
|
||||
/tutorials/viewports/using_viewport_as_texture.html,/tutorials/shaders/using_viewport_as_texture.html
|
||||
@@ -403,7 +401,9 @@ source,destination
|
||||
/tutorials/platform/consoles.html,https://godotengine.org/consoles/
|
||||
/tutorials/xr/openxr_passthrough.html,/tutorials/xr/ar_passthrough.html
|
||||
/contributing/development/compiling/compiling_for_uwp.html,/about/faq.html#which-platforms-are-supported-by-godot
|
||||
/contributing/_contributing.html,https://contributing.godotengine.org
|
||||
/contributing/_contributing.html,https://contributing.godotengine.org/
|
||||
/contributing/,https://contributing.godotengine.org/
|
||||
/contributing/index.html,https://contributing.godotengine.org/
|
||||
/contributing/development/compiling/compiling_with_mono.html,/engine_details/development/compiling/compiling_with_dotnet.html
|
||||
/contributing/architecture/introduction_to_godot_development.html,/engine_details/architecture/index.html
|
||||
/contributing/development/best_practices_for_engine_contributors.html,https://contributing.godotengine.org/en/latest/engine/guidelines/best_practices.html
|
||||
@@ -444,8 +444,8 @@ source,destination
|
||||
/contributing/development/core_and_modules/scripting_development.html,https://contributing.godotengine.org/en/latest/engine/guidelines/gdscript_language_guidelines.html
|
||||
/contributing/development/core_and_modules/unit_testing.html,/engine_details/architecture/unit_testing.html
|
||||
/contributing/development/core_and_modules/variant_class.html,/engine_details/architecture/variant_class.html
|
||||
/contributing/documentation/class_reference_primer.html,engine_details/class_reference/index.html
|
||||
/contributing/development/compiling/compiling_for_android.html,/engine_details/development/compiling/compiling_for_android.html,
|
||||
/contributing/documentation/class_reference_primer.html,/engine_details/class_reference/index.html
|
||||
/contributing/development/compiling/compiling_for_android.html,/engine_details/development/compiling/compiling_for_android.html
|
||||
/contributing/development/compiling/compiling_for_ios.html,/engine_details/development/compiling/compiling_for_ios.html
|
||||
/contributing/development/compiling/compiling_for_linuxbsd.html,/engine_details/development/compiling/compiling_for_linuxbsd.html
|
||||
/contributing/development/compiling/compiling_for_macos.html,/engine_details/development/compiling/compiling_for_macos.html
|
||||
@@ -466,21 +466,23 @@ source,destination
|
||||
/contributing/development/configuring_an_ide/kdevelop.html,/engine_details/development/configuring_an_ide/kdevelop.html
|
||||
/contributing/development/configuring_an_ide/qt_creator.html,/engine_details/development/configuring_an_ide/qt_creator.html
|
||||
/contributing/development/configuring_an_ide/rider.html,/engine_details/development/configuring_an_ide/rider.html
|
||||
/contributing/development/configuring_an_ide/rider.html,/engine_details/development/configuring_an_ide/rider.html
|
||||
/contributing/development/configuring_an_ide/visual_studio.html,/engine_details/development/configuring_an_ide/visual_studio.html
|
||||
/contributing/development/configuring_an_ide/visual_studio_code.html,/engine_details/development/configuring_an_ide/visual_studio_code.html
|
||||
/contributing/development/configuring_an_ide/xcode.html,/engine_details/development/configuring_an_ide/xcode.html
|
||||
/contributing/development/debugging/index.html,/engine_details/development/debugging/index.html
|
||||
/contributing/development/debugging/macos_debug.html,/engine_details/development/debugging/macos_debug.html
|
||||
/contributing/development/debugging/using_cpp_profilers.html,/engine_details/development/debugging/using_cpp_profilers.html
|
||||
/contributing/development/debugging/using_cpp_profilers.html,/engine_details/development/profiling/index.html
|
||||
/contributing/development/debugging/using_sanitizers.html,/engine_details/development/debugging/using_sanitizers.html
|
||||
/contributing/development/debugging/vulkan/index.html,/engine_details/development/debugging/vulkan/index.html
|
||||
/contributing/development/debugging/vulkan/vulkan_validation_layers.html,/engine_details/development/debugging/vulkan/vulkan_validation_layers.html
|
||||
/contributing/development/handling_compatibility_breakages.html,/engine_details/development/handling_compatibility_breakages.html
|
||||
/contributing/development/editor/creating_icons.html,/engine_details/editor/creating_icons.html
|
||||
/contributing/development/editor/index.html,/engine_details/editor/index.html
|
||||
/contributing/development/editor/introduction_to_editor_development.html,/engine_details/editor/introduction_to_editor_development.html
|
||||
/contributing/development/file_formats/gdscript_grammar.html,/engine_details/file_formats/gdscript_grammar.html
|
||||
/contributing/development/core_and_modules/binding_to_external_libraries.html,/engine_details/engine_api/binding_to_external_libraries.html
|
||||
/contributing/development/file_formats/gdscript_grammar.html,/engine_details/file_formats/index.html
|
||||
/contributing/development/file_formats/index.html,/engine_details/file_formats/index.html
|
||||
/contributing/development/file_formats/tscn.html,/engine_details/file_formats/tscn.html
|
||||
/engine_details/file_formats/gdscript_grammar.html,/engine_details/file_formats/index.html
|
||||
/engine_details/development/debugging/using_cpp_profilers.html,/engine_details/development/profiling/index.html
|
||||
/engine_details/development/debugging/profiling/sampling_profilers.html,/engine_details/development/profiling/index.html
|
||||
/engine_details/development/debugging/profiling/tracing_profilers.html,/engine_details/development/profiling/index.html
|
||||
|
||||
|
Can't render this file because it has a wrong number of fields in line 448.
|
@@ -86,7 +86,11 @@ def is_dry_run(args):
|
||||
return args.dry_run or args.validate
|
||||
|
||||
def validate(destination):
|
||||
p = BUILD_PATH + destination
|
||||
if destination.startswith("https://"):
|
||||
# Skip; external targets cannot be validated here.
|
||||
return
|
||||
|
||||
p = BUILD_PATH + destination.split("#", 1)[0]
|
||||
if not os.path.exists(p):
|
||||
print("Invalid destination: " + destination + " (" + p + ")")
|
||||
|
||||
@@ -224,8 +228,8 @@ def has_suffix(s, suffixes):
|
||||
return False
|
||||
|
||||
|
||||
def is_valid_redirect_url(url):
|
||||
if len(url) < len("/a"):
|
||||
def is_valid_source_url(url):
|
||||
if len(url) < len("/a") or not url.startswith("/"):
|
||||
return False
|
||||
|
||||
if not has_suffix(url.lower(), REDIRECT_SUFFIXES):
|
||||
@@ -234,6 +238,16 @@ def is_valid_redirect_url(url):
|
||||
return True
|
||||
|
||||
|
||||
def is_valid_destination_url(url):
|
||||
if not (url.startswith("/") or url.startswith("https://")):
|
||||
return False
|
||||
|
||||
if not has_suffix(url.lower().split("#", 1)[0], REDIRECT_SUFFIXES):
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
|
||||
def redirect_to_str(item):
|
||||
return id(item[0], item[1])
|
||||
|
||||
@@ -291,12 +305,12 @@ def main():
|
||||
print("Invalid redirect:", redirect, "- redirects to itself!")
|
||||
continue
|
||||
|
||||
if not is_valid_redirect_url(redirect[0]) or not is_valid_redirect_url(redirect[1]):
|
||||
print("Invalid redirect:", redirect, "- invalid URL!")
|
||||
if not is_valid_source_url(redirect[0]):
|
||||
print("Invalid redirect:", redirect, "- invalid source URL!")
|
||||
continue
|
||||
|
||||
if not redirect[0].startswith("/") or not redirect[1].startswith("/"):
|
||||
print("Invalid redirect:", redirect, "- invalid URL: should start with slash!")
|
||||
if not is_valid_destination_url(redirect[1]):
|
||||
print("Invalid redirect:", redirect, "- invalid destination URL!")
|
||||
continue
|
||||
|
||||
if redirect[0] in sources:
|
||||
|
||||
Reference in New Issue
Block a user