我正在为我托管的网站设置301重定向服务器。当我得到一个新客户时,我不想在下面的服务器块中编辑域列表。我想将anydomain-here.com重定向到301 - >而不是nginx配置中的硬编码域。 www.anydomain-here.com
所有裸露的域名(即domain.com)都将重定向到www.domain.com
server {
server_name domain-requested.com;
rewrite ^/(.*)$ http://www.domain-requested.com/$1 permanent;
}
在上面的示例中,是否可以将域请求更改为变量?这将允许服务器重定向任何没有子域的站点,例如www。
答案 0 :(得分:2)
如果使用裸域,您可以使用地图设置变量:
import MessageUI
if MFMailComposeViewController.canSendMail() {
let mail = MFMailComposeViewController()
mail.mailComposeDelegate = self
mail.setToRecipients(["test@test.test"])
mail.setSubject("Bla")
mail.setMessageBody("<b>Blabla</b>", isHTML: true)
presentViewController(mail, animated: true, completion: nil)
} else {
print("Cannot send mail")
// give feedback to the user
}
// MARK: - MFMailComposeViewControllerDelegate
func mailComposeController(controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError?) {
switch result.rawValue {
case MFMailComposeResultCancelled.rawValue:
print("Cancelled")
case MFMailComposeResultSaved.rawValue:
print("Saved")
case MFMailComposeResultSent.rawValue:
print("Sent")
case MFMailComposeResultFailed.rawValue:
print("Error: \(error?.localizedDescription)")
default:
break
}
controller.dismissViewControllerAnimated(true, completion: nil)
}
答案 1 :(得分:0)
您可以使用Nginx 1.4.6删除至少一个硬编码域名:
rewrite ^/(.*)$ http://www.$server_name/$1 permanent;
您可以通过将其包含在所有服务器块包含的包含文件中来进一步抽象。您不能仅仅使用Nginx做得更好,因为rewrite
上下文中不允许声明http
以应用于多个server
块。
要考虑的其他一些想法:
我自己使用了上述两种方法。使用DNS提供程序进行HTTP重定向的缺点是它们无法处理传入的SSL请求,但如果您要购买并安装第二个SSL证书来处理HTTPS重定向,那么这只是一个缺点。第二个域自己。