Issue title: How to deploy to something other than Netlify or GitHub pages?
 Issue body: I have a hosting account I want to use, and I know how to FTP stuff, but simply uploading my 11ty folder doesn't do what I expected.  I can open the homepage, but all links are dead, there is no css, js and no images. My existing blog is hand written static html and works just fine on that server.

I am entirely new to SSG's and I must be misunderstanding something very basic. I have found nothing in 11ty docs to shed light - they are perhaps not (yet) very beginner-friendly.

In short: How do I deploy my site with everything working as well as it does locally?
 Comments: 
 Comment 0: Hi, @HagelBagel! Welcome to Eleventy! Do you have a link to a repository to share? I can take a look.
 Comment 1: How do you build the site? (what command)
How do you synch the output folder?

That's why services like Netlify, [ZEIT Now](https://zeit.co), or [buddy.works](https://buddy.works) (if you need to automate FTP deployments) exist, that deployment step should be set up and automated. 


 Comment 2: @reubenlillie Here's my repo: [https://github.com/HagelBagel/11ty-test-blog](url)
@DirtyF: For building: "npx eleventy". I am not sure what you mean by synching the output folder? Like automated deployment? I only tried regular ol' FTP.
 Comment 3: When you run `npx eleventy` it will generate an output directory (by default called `_site`). You need to put the content of that directory onto a webserver (e.g. using FTPS). That's what is called „deployment” (= transferring files from where they were generated to the machine which shall serve them)
 Comment 4: For example, I am using Uberspace and build the files there locally before copying the output directory onto the document root defined with Apache.
 Comment 5: @HagelBagel FWIW your site is deploying fine on Netlify: https://5e7cb5f8578654018cf1420b--sleepy-carson-e1b1e4.netlify.com
 Comment 6: Hi @Ryuno-Ki  - that's exactly what I have been doing: simply copying the files to my server. But perhaps something is going wrong in that process. 
@DirtyF: thanks for testing!
It's probably just a dumb mistake I'm making - at it again ;-)
 Comment 7: @HagelBagel Would you be able to share a link to the server you're FTPing it to? This way we could check the links.

> I can open the homepage, but all links are dead, there is no css, js and no images.

If I understand you correctly, this is your main problem (not the upload).
 Comment 8: So: I think I nailed it now. Turns out I hadn't put things in the root, but one folder down (doh). Then I had some paths without trailing slashes: /about instead of /about/. Finally, I had folders with title-case: "About", but the corresponding paths were lower-case: /about/. All these things fixed, it finally works: [http://chfrom.dk/](http://chfrom.dk/)
So, not one - but several mistakes. Learned a lot from this one. Thanks to all of you - I'm closing this one down. :-)
 Comment 9: Hooray!

Will you blog in Danish or English? In any case, don't forget to generate a RSS feed :-)
 Comment 10: I will be writing in English, but I will probably put my old site back up while I work on this new 11ty thing of wonder, adding RSS and all kinds of goodies ;-)
 Comment 11: [Microformats](https://indieweb.org/microformats) *_\*

Okay, I'll keep an eye on the site then :-)
 Comment 12: Hello, so I need help for something similar, on my localhost, the 11ty site works fine but I can't upload it to the current shared hosting that my client uses as in the _site folder, all links become it own directories and this breaks the page (i.e: products.html to product > index.html)

So how should I fix this? I see many people just say upload your _site to your FTP root directory but this will just result in broken pages cause of the "product > index.html" thing.


 Comment 13: Hi Omar!
It looks like you're having the same problems I had. I did figure it out and wrote about it [here:](http://chfrom.dk/posts/2020/portfolio-remake-with-eleventy/). Maybe it will help you too. Read from "Getting Started" and down...hope it helps! :-)
 Comment 14: @omartan I created a basic example at https://github.com/pdehaan/11ty-permalinks

The /src/ directory has all of my source files (.liquid, global _data files, etc), and the /www/ directory has all the generated output so you can see the final folder structure.
The /src/about.liquid file specifies an explicit permalink of "/about.html", and the /src/home.liquid file specifies a permalink of "/" (which will be written to /www/index.html).

Depending on how many files you have in your site, it might be easier to specify explicit `permalink` fields in your frontmatter. If you have dozens-hundreds of pages, we might be able to figure out some [directory data file](https://www.11ty.dev/docs/data-template-dir/#example-apply-a-default-layout-to-multiple-templates) solution.
 Comment 15: @pdehaan , how do you link other pages then? 
as I see `{{ page.url }}` which returns the current page url, which is fine, but what about linking to other pages like 
`<a href="/about/">About</a>`?
 Comment 16: @pdehaan okay, I'm getting close but here's what I notice, so in `home.liquid`,

To link to the about page, I need to manually change from `<a href="\about\">About</a>` to `<a href="about.html">About</a>` correct?

but I have another page in a loop uses something like `{{ page.url }}` which will always return `\about.html`, so how do I get rid of that `\`? 



 Comment 17: @omartan Not sure if you maybe want to start a new GitHub issue and post a link to your repo. I don't know why your links would be `<a href="\about\">About</a>` if you're setting the `permalink` in the front-matter for that file, unless the links were manually set to that in the content somewhere.

I'm also curious where you are deploying this and why it wouldn't work with a leading "/"; unless your final folder isn't in the root directory of the URL. But if that is the case, maybe we can just set [`pathPrefix`](https://www.11ty.dev/docs/config/#deploy-to-a-subdirectory-with-a-path-prefix) in your .eleventy.js config file to whatever your final URL structure would be.

```js
  return {
    dir: {
      input: "src",
      output: "www",
    },
    pathPrefix: "/~your-prefix-dir-here/",
  };
```

If that doesn't solve it, then we can try writing a custom 11ty filter to strip leading `/` characters should work (although it might need some additional checks and logic to cover cases where people write [protocol-less URLs](https://www.paulirish.com/2010/the-protocol-relative-url/) like //google.com/foo/bar).

But this should work for a very simple use case:
```js
  eleventyConfig.addFilter("stripLeadingSlash", (urlPath = "") =>
    urlPath.startsWith("/") ? urlPath.slice(1) : urlPath
  );
```

 Comment 18: Hey @pdehaan , thanks for that answer. I think I made a typo and let me better phrase sentence, so based on the sample you given there's 2 files, index/home and about, let say I want to create a link from home to about, how do I get doing about that as if I were to go the default 

home.liquid
```<a href = "/about/">About</a>```

the output will be

index.html
```<a href="/about/">About</a>```

which will result in a broken link if I were to open the index.html file directly as the url technically need to be `about.html` instead of `/about/`. I could hard code it and make it as 

home.liquid
```<a href = "about.html">About</a>```

which solves the problem completely but if I start using things like `{{ page.url }}` it'll default with returning `/about.html` for example
 Comment 19: Correct, you can't set your URLs to /about/ because that will 404 since you aren't using that folder structure. So you'll either need to use `<a href="about.html">About</a>` or use something like the `stripLeadingSlash` filter above.
And if your pages are at different depths, you might need to do `<a href="../about.html">About</a>`, depending on how your site/pages are configured.

I'm still not sure why /about.html wouldn't work for your setup, unless you aren't hosting the site in the root of your domain (ie: http://foo.com/~site/about.html). In which case you might be able to look into that `prefixPath` config and see if that solves the issue without needing to do a bunch of extra URL path handling.

 Comment 20: Okay, I feel like an idiot now and confused with what happen, I tested and uploaded the original with `<a href="/about/">About</a>` to the root of the hosting provider and the website works without having to do any permalinks and etc., why is that?

if I were to go into the server, I'm able to see the standard `About > index.html` folder structure and if I open the file directly, it'll just serve me plain HTML as expected. So does it has something to do with the / ?

i.e:`/about/`
With the first / means that `yourwebdomain.com/` and the 2nd / means open the about folder and display the index.html file?
 Comment 21: > Okay, I feel like an idiot now and confused with what happen, I tested and uploaded the original contents of` _site` with `<a href="/about/">About</a>` to the root of the hosting provider and the website works without having to do any permalinks and etc., why is that?

It all depends on how your server is configured. It's a pretty common pattern whether you're using Apache or IIS or Netlify/Vercel, etc. By default the server will look for an ./index.html file in the current directory and serve that, if available. Otherwise it might fall back to a default.html or displaying a folder's contents. But it's all very server config specific.

---

> if I were to go into the server, I'm able to see the standard `About > index.html` folder structure and if I open the file directly, it'll just serve me plain HTML with broken images and links as expected. So does it has something to do with the / requiring it to only be viewed on a live server and not as individual files?

I don't think I understand. Are you saying navigating to http://yourwebdomain.com/about/ is giving you a file listing and viewing the http://yourwebdomain.com/about/index.html file displays a bunch of broken images and links? And I'm not sure what you mean by "live server". You're not trying to view your site using C:\\mysite\\about\\index.html, correct? That rarely works, and you should be using something like <kbd>eleventy --serve</kbd> locally.

Re: `/about/`,
Yes. If your domain is http://yourwebdomain.com/ and you're in a deeply nested site with `/blog/2021/12/24/welcome-to-my-site/index.html`, and you have a link similar to `<a href="/about/">About</a>` on that page, the first `/` would say "take me to the root of the site" (or http://yourwebdomain/) and then display the "about/" folder and whatever the default file is. Or in our case, /about/index.html. But again, it depends on how your server is configured.

---

> I'm a little confused here as I thought basic HTML linking must be `<a href='about.html'>About</a>` and not `<a href="/about/">About</a>`, but `/about/` seems to work in a live server

HTML doesn't care. You can do `/about/index.html` or `/about.html` or or `/about/default.asp` or whatever file convention you want. But it all just depends on how you're hosting the site, and if you're in a subdirectory, and if you want /index.html to be the default files or not. We can override them with permalinks, but you have to make sure you're always consistent with how you do it and how you link to those pages. If you're trying to do permalinks like /about.html, you can't write your links to that page as `/about/` since you'll just get 404s.

 Comment 22: > It all depends on how your server is configured. It's a pretty common pattern whether you're using Apache or IIS or Netlify/Vercel, etc. By default the server will look for an ./index.html file in the current directory and serve that, if available. Otherwise it might fall back to a default.html or displaying a folder's contents. But it's all very server config specific.

Thanks for this info, I only heard of Apache and Netlify, but isn't what Netlify does is just automate the CI process by running a NPM > Eleventy Build > Serve?

---

> Yes. If your domain is http://yourwebdomain.com/ and you're in a deeply nested site with /blog/2021/12/24/welcome-to-my-site/index.html, and you have a link similar to <a href="/about/">About</a> on that page, the first / would say "take me to the root of the site" (or http://yourwebdomain/) and then display the "about/" folder and whatever the default file is. Or in our case, /about/index.html. But again, it depends on how your server is configured.

Thanks! I never knew about the `about/` trick.

> You're not trying to view your site using C:\mysite\about\index.html, correct? That rarely works, and you should be using something like eleventy --serve locally.

And yeah, after I worked on the site with `eleventh --serve`, I tested the site by viewing it like so `C:\mysite\about\index.html` and since it didn't work, I thought it'll be the same when I upload the file to the shared hosting server, as it was already live, I was afraid my upload will break it. Now I know to always run it on localhost 

Well thanks for the help! Learned a lot and some embarassing moments 😅
{'source': 'GithubIssues', 'repo_name_with_owner': '11ty/eleventy', 'issue_id': 588322529, 'repo_stars': 12932.0}