Along the lines of all companies pay the rate of tax that is due to the government of the country in which they trade not where their HQ is registered, then you stop companies buying up other companies in other countries purely for tax avoidance reasons.
The trouble is that corporation tax is (rightly) levied on profit, not turnover. Its possible to have a massive trading presence, but make no profit. Equally, its possible to move profits between different jurisdictions in such a way that its incredibly difficult (impossible?) to prove whether it was done for genuine business reasons or just to minimise tax.
The best solution would be to harmonise tax rates across countries, so there was no benefit to be had. However, since being a tax haven is a large part of the economy of some countries, there is little prospect of that.
Another possibility is to move away from taxing profits, and tax some other element of corporate activity - like the payroll or property taxes mentioned earlier. This also has some negative effects - for example, if we have high payroll taxes, it encourages businesses to move still more jobs to countries with both lower wages AND lower payroll taxes.
The chancellor is steadily lowering corporation tax, continuing a trend by chancellors of all political parties. From a peak of 52% in 1983, they will have fallen to 18% by 2019, which I think is the lowest in the G20. Ironically, Britain may actually benefit by companies choosing to pay tax in the UK than in one of the higher tax continental countries.
The actual income to the treasury from 1980 to 2020, will be almost exactly the same - at about 3% of GDP plus or minus 1%. The variations, peaks and troughs in the graph of corporation tax receipts, clearly show booms (lots of profit = lots of tax) and recessions (little profit and falling tax receipts) but many cuts to the actual rate at which it is levied does not seem to reduce the amount it raises in the long run.