Как сделать, чтобы и первый пункт ездил?
1. Потому что есть два типа ссылок - относительные и абсолютные. В абсолютных прописывается полный путь, начиная с указания протокола, например <a href="http://site.ru">Кому-то пора почитать про азы HTML</a>
2. Потому что есть такой тег <base href="/">, который используется, когда вы указываете относительные ссылки и помогает формировать полный путь. 
Например он указан так:
<base href="http://site.ru"/>

Тогда для ссылки <a href="/#about">Кому-то пора почитать про азы HTML</a> полный путь будет site.ru/#about, т.е в данном случае якорь будет искаться на главной странице, а не на той, где размещена ссылка
В жутко-страшном виде (лучше не придумал):
snippet