Stop player being launched on switch weapons

I don’t think this has been asked before, I couldn’t find it anywhere, but if it has, sorry.

I have made a script to swap weapons when the player is near a weapon on the floor and they press E. It works perfectly, but there is a problem with the part of the script that drops the original weapon. It works by disabling that weapon’s scripts, enabling it’s collider and unfreezing it’s rigidbody. This works, but has the unwanted side effect of launching the player several hundred metres into the air. I think this is because when the weapons rigidbody and collider are enabled they are within the player, and push it. Of course, if they are not enabled, the weapon will just hover in the air, which is not what I want. Is there a way to avoid the player being launched whilst still dropping the old weapon on the floor?

You can use Physics.IgnoreCollision to make sure the weapon is not colliding with the player.