FEATURE: permalink normalization

Optionally allow admins to apply regex based normalization
to permalinks prior to matching.

This allows us to drop query string, or cleanly ignore slugs, etc.
This commit is contained in:
Sam
2015-07-15 15:32:35 +10:00
parent d20324ece8
commit b772d96f7a
5 changed files with 92 additions and 4 deletions

View File

@ -10,6 +10,17 @@ describe PermalinksController do
expect(response.status).to eq(301)
end
it "should apply normalizations" do
SiteSetting.permalink_normalizations = "/(.*)\\?.*/\\1"
permalink = Fabricate(:permalink, url: '/topic/bla', external_url: '/topic/100')
get :show, url: permalink.url, test: "hello"
expect(response).to redirect_to('/topic/100')
expect(response.status).to eq(301)
end
it 'return 404 if permalink record does not exist' do
get :show, url: '/not/a/valid/url'
expect(response.status).to eq(404)