app sends 404 code for /fallback and failing canonical #831
1 changed files with 12 additions and 3 deletions
|
@ -50,8 +50,11 @@ export default (req, res) => {
|
||||||
saga = false,
|
saga = false,
|
||||||
} = httpContext.get('routeData');
|
} = httpContext.get('routeData');
|
||||||
|
|
||||||
const runSaga = (action !== false && saga !== false);
|
if (action === 'fallback') {
|
||||||
|
res.status(404);
|
||||||
|
}
|
||||||
|
|
||||||
|
const runSaga = (action !== false && saga !== false);
|
||||||
const renderPage = (store) => {
|
const renderPage = (store) => {
|
||||||
|
|
||||||
// Workaround, remove when a solution for async httpContext exists
|
// Workaround, remove when a solution for async httpContext exists
|
||||||
|
@ -63,10 +66,10 @@ export default (req, res) => {
|
||||||
} else {
|
} else {
|
||||||
const channelKeys = Object.keys(showState.channelList);
|
const channelKeys = Object.keys(showState.channelList);
|
||||||
|
|
||||||
if(channelKeys.length !== 0) {
|
if (channelKeys.length !== 0) {
|
||||||
res.claimId = showState.channelList[channelKeys[0]].longId;
|
res.claimId = showState.channelList[channelKeys[0]].longId;
|
||||||
res.isChannel = true;
|
res.isChannel = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// render component to a string
|
// render component to a string
|
||||||
|
@ -115,10 +118,16 @@ export default (req, res) => {
|
||||||
.then(() => {
|
.then(() => {
|
||||||
// redirect if request does not use canonical url
|
// redirect if request does not use canonical url
|
||||||
const canonicalUrl = getCanonicalUrlFromShow(store.getState().show);
|
const canonicalUrl = getCanonicalUrlFromShow(store.getState().show);
|
||||||
|
|
||||||
|
if (!canonicalUrl) {
|
||||||
|
res.status(404);
|
||||||
|
}
|
||||||
|
|
||||||
if (canonicalUrl && canonicalUrl !== req.originalUrl) {
|
if (canonicalUrl && canonicalUrl !== req.originalUrl) {
|
||||||
console.log(`redirecting ${req.originalUrl} to ${canonicalUrl}`);
|
console.log(`redirecting ${req.originalUrl} to ${canonicalUrl}`);
|
||||||
res.redirect(canonicalUrl);
|
res.redirect(canonicalUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
return renderPage(store)
|
return renderPage(store)
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue