Im новое в метеор. Это будет круто автоматического редиректа отКак перенаправить с не www на www в meteor.js приложение
example.com
в
www.example.com
. Может ли кто-нибудь помочь?
Im новое в метеор. Это будет круто автоматического редиректа отКак перенаправить с не www на www в meteor.js приложение
example.com
в
www.example.com
. Может ли кто-нибудь помочь?
Вы можете сделать это, добавив часть промежуточного программного обеспечения. Это поможет вам начать:
WebApp.connectHandlers.use(function(req, res, next) {
/* Check if request is for non-www address */
if(...) {
/* Redirect to the proper address */
res.writeHead(301, {
Content-Type': 'text/html; charset=UTF-8',
Location: correctURL,
});
res.end("Moved to: " + correctURL);
return;
}
/* Did not redirect - continue with the application stack */
next();
});
Это похоже на единственный ответ в Интернете. Поскольку я новичок в meteor.js и node.js, у меня возникли проблемы с определением, где это поставить ... Edit: Я обработал его в apache vhosts. –
Это код сервера, поэтому вы помещаете его в том же месте, где вы бы поместили любой код сервера. Поэтому в папке '/ server' предпочтительно, но может быть и где угодно внутри условия if (Meteor.isServer). –
Это необходимо сделать на уровне DNS. См. Http://stackoverflow.com/a/15706411/994922 – Prashant
Я знаю, что это 2-х лет, но он не имеет общепринятый ответ, чтобы я обеспечиваю полный ответ:
WebApp.connectHandlers.use(function(req, res, next) {
// Check if request is for non-www address
if (req.headers && req.headers.host.slice(0, 4) !== 'www.') {
// Add www. from host
var newHost = 'www.' + req.headers.host
// Redirect to www. version URL
res.writeHead(301, {
// Hard-coded protocol because req.protocol not available
Location: 'http://' + newHost + req.originalUrl
});
res.end();
} else {
// Continue with the application stack
next();
}
});
Вы можете пойти в обратном направление (WWW к не-WWW) со следующим кодом:
WebApp.connectHandlers.use(function(req, res, next) {
// Check if request is for non-www address
if (req.headers && req.headers.host.slice(0, 4) === 'www.') {
// Remove www. from host
var newHost = req.headers.host.slice(4);
// Redirect to non-www URL
res.writeHead(301, {
// Hard-coded protocol because req.protocol not available
Location: 'http://' + newHost + req.originalUrl
});
res.end();
} else {
// Continue with the application stack
next();
}
});
Я использовать с этим кодом на стороне клиента:
Meteor.startup(function() {
if (location.host.indexOf('www.domain.com') !== 0) {
location = 'www.domain.com';
}
});
Его простота и работа. Надеюсь, это ответит на ваши вопросы. Thanks
Я сделал это с nginx = \ – user732229
Возможно дубликат. См. Http://stackoverflow.com/a/15706411/994922 или http://stackoverflow.com/a/16975982/994922 – Prashant