summaryrefslogtreecommitdiff
path: root/content/post/first website.md
blob: d4a21fa349977abc34ca4d0afee4ff53ba6168ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
+++
title = "First Website"
date = 2022-08-10
[taxonomies]
categories = ["period"]
tags = ["gibberish"]
[extra]
math = false
+++

So now I can say my website is on.. even though it just literally has nothing but a printing *hello*
![FirstWebsite.png](https://assets.garhve.com/pictures/screenshots/2022/08/2751557406.png)

I got this *garhve.com* domain on namesilo for $9.95 per year, it's really cheap! I always want a domain that is .com suffix.

Now, the web is https, this is a bit difficult for me.

Due to personal interest, I didn't choose frame to base my website. I use **Nginx** but I don't familiar with it. making it shows my content is not that difficult even that I don't know much fancy state, but I stucked on SSL.

In order to use https instead of http, I choosed **let's encrypt**, which is good for me and it's free. However, I can only getting my non-www domain working. when it comes to www domain, it still http.

I found solutions all about using return to returning https, but it won't work

```nginx
server {
    server_name www.garhve.com;
	return 301 https://www.garhve.com$request_uri
}
```

This would return me a 404 error...

After searching and searching, I found where i was getting wrong.

Above statement only return https-www which doesn't hold any contents, all I need is to redirect the https-www to https-non-www.

So, change to this one

```nginx
server {
    listen 80;
	server_name www.garhve.com garhve.com;
	return 301 https://garhve.com$request_uri;
}	# this block will redirect http-both to https-both

server {
    listen 443 ssl http2;	#http2 is newer and more secure http
    listen [::]:443 ssl http2;
  
    server_name www.garhve.com;
    include /path_to_cert_file;
    return 301 https://garhve.com$request_uri;
}	# this block will redirect https-www to https-non-www

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
  
    server_name garhve.com;
    include /path_to_cert_file;
  
    #location to real content
}	# this block is where we hold web content.
```

It will redirect *https-www* to *https-non-www*. Now, both domain will point to same location -- my home page.