我在App Engine上为我的网站设置了SSL和自定义域名。
完全正常:我可以转到https://www.mywebsite.com并加载页面。
但我想做出以下改变。
如果我去mywebsite.com,我会立即被重定向到https://www.mywebsite.com。
我该怎么做?
答案 0 :(得分:1)
如果您使用的是expressjs,那么下面的代码就可以了。
A
答案 1 :(得分:1)
您可以在开始添加路线之前进行此操作。它将检查每个请求的协议,如果它通过http
进入,则重定向到https版本app.use(function(req, res, next) {
if (req.protocol === 'http') {
var host = req.host.replace('www.', '');
return res.redirect('https://www.' + host + req.originalUrl);
}
next();
});
请注意,如果nginx / apache正在处理https内容并转发到非https节点服务器,这是不够的。您需要查看条件中的标题而不是req.protocol
(类似于@Asif所具有的条件)
答案 2 :(得分:0)
您需要在服务器的根目录下创建.htaccess文件以进行重定向。
.htaccess文件
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} folder
RewriteRule ^(.*)$ https://www.urserver.com/folder/$1 [R,L]
</IfModule>
使用上限可以重定向到您的域
答案 3 :(得分:0)
您还可以将裸域 mywebsite.com
映射到GAE应用,另外映射到www.mywebsite.com
。基本上,通过重复Adding a custom domain for your application的过程并在步骤4选择裸域(强调我的):
继续执行添加新自定义域表单的下一步 选择要指向App Engine应用程序的自定义域:
指定要映射的域和子域。
注意:裸域和 www 子域名已预填充 形式。
- 裸露的域名(例如
example.com
)会映射到http://example.com
。- 子域名(例如
www
)会映射到http://www.example.com
。点击提交映射以创建所需的映射。
优点:
缺点:
至少对于标准环视应用,https
次请求可能有2次重定向:
http://www.mywebsite.com
https://www.mywebsite.com