They didn't begin rotating the divisional matchups until last year. Every year the NL East played the AL East. Last year they did switch up, but kept some matchups they deemed rivalries (Yankees-Mets). So while last year the Phils played the AL Central, they didn't play the Royals (what would've been a 1980 World Series rematch). Instead they had 6 games with the Orioles, 3 at Camden Yards and 3 at the Vet.
This year the NL East plays the AL West. But the Phils don't play Texas--only Seattle and Oakland at the Vet (Phillies-A's! Once upon a time...) and at Anaheim--instead, they get yet another trip to Camden Yards and the aforementioned Red Sox. Keeping the trip to Baltimore I can understand because the Orioles want to keep us hordes coming down I-95 and selling out the place.

But why Phils-Red Sox? I have no idea.