Instagram качване на снимка

Сега ще ви покажа как можете да качвате снимки към Instagram от настолен компютър. Дълго време Instagram позволяваше качване на снимки само от тяхното мобилно приложение. Но пред последните няколко години малко разхлабиха това и позволиха към един акаунт да се привържат още няколко. Ако не се лъжа бройката е до 6. Но какво да направим когато имаме акаунт и трябва да се качи снимка, а разполагаме само със компютър?

Решението е много просто! Сменяте си user agent-a със iOS или нещо от Android което бях описал тук. След което презареждате Instagram:

Така долу по средата се явява икона на +. Натискате я. Излиза прозорец за избор на файл за качване:

След като сте го избрали избирате филтър, намествате снимката и натискате Next. Излиза прозореца за избор на текст, локация и възможност да тагнете някой. Пишете нещо такова:

След което при натискане на бутона Share това се публикува от ваше име на стената ви:

Този подход може да се приложи по няколко начина със цел мащаб. Първия е със използване на Chrome и неговите профили което е описано тук. Друг подход е използване на Firefox и неговите профили което съм описал преди време тук.  Така идеята е, че правим профил Иван и там се логваме със неговите социални акаунти. После правим профил Драган и там се логваме със неговите социални акаунти. Следва профил Петкан където използваме само неговите профили. Разбира се нищо не ви пречи и да имате няколко устройства където да е логнат със тези си акаунти.

Instagram качване на снимка

Chrome забрана на JavaScript

Сега ще ви запозная със една сравнително нова възможност на браузъра Chrome, а именно да се забранява JavaScript на ниво сайт. Във всички браузъри това го има като възможност, но е глобално т.е. пускаш и спираш целия JavaScript, но на ниво браузър. Това води до (д)ефекти примерно ако си отворил Facebook, Twitter, Gmail, Ads, Analytics или други такива тежки сайтове и във следващия момент спреш изцяло JavaScript. Общо взето моментално целия интерфейс става неработещ и това се решава само със включването на JavaScript и евентуалното им презареждане. За да бъдат нещата по-лоши това води и до спиране на интерфейса на Chrome защото приставките са написани на JavaScript, а и част от интерфейса също.

Но във една от последните версии на Chrome излезе възможност да се забрани индивидуално за даден сайт да не може да използва JavaScript. До сега това беше възможно само със използването на специални приставки. Сега ще ви покажа как можете да го направите със голи ръце.

За пример ще ви покажа един сайт който ползва много реклами, но харесвам да го посещавам – Блиц.БГ. Сайта е хубав, информативен и е доста жълт. Всичко това те кара да отваряш нови и нови табове за да проследиш новината. Но на всеки таб има реклами които хабят ценна процесорна мощ, хабят рам и в крайна сметка затормозват компютъра или мобилното устройство.

Първата стъпка е да отворим сайта:
и да кликнем горе на иконата със катинар. След това натискаме „Site settings“. При което ни излиза този прозорец:

Отиваме до JavaScript и избираме „Block“ със което го забраняваме. След което можем да затворим този таб. Вече първия таб изглежда така:
и ни подканя да презаредим.

Какво губим като потребители във този случай? Първо спираме коментарите на сайта, второ – галериите и някой снимки които се зареждат със lazy loading спират да работят и трето малко интерфейса се чупи (ама само малко!). Но всичко бледнее пред възможността да отвориш 30 таба дори и на по-слаб компютър. Отделно сайта в момента изразходва драстично по-малко интернет и се зарежда чувствително по-бързо. Какво губят авторите на сайта – не могат да ми показват реклами и не могат да ме видят във техния Analytics. Всъщност авторите на сайта могат да си решат проблемите като използват технология тип native advertisement и със някакъв трекиращ пиксел да ме отчитат.

Chrome забрана на JavaScript

Смяна на Chrome user agent без плъгин

Понякога се налага да се смени user agent-a без да се използва плъгин. Ето и как можете да го направите без плъгин или някаква друга приставка.

Ето оригинала:

Както виждате user agent-a ми е CrOS което си е ChromeOS. Нека сега да го сменим!

Натискаме десен бутон във файла, Инспект Елемент и от инспектора във долния панел избираме Network Conditions и го сменяме. Ако не е активен Network Conditions се клика на трите точки във ляво и оттам се избира. Ето как би трябвало да изглежда.

И как да се представим за Googlebot mobile:

След презареждане действително заявката се изпраща със този user agent. Това е полезно за тестване на сайтове когато се сервират различни страници във зависимост от браузъра. Отделно е полезно когато се тестват сайтове защото във един прозорец може да се сервира съдържание за iPhone, във друг за iPad, във трети за Android и четвърти да е за компютър със симулиране и на различната мрежа във всеки един от тях индивидуално.

Смяна на Chrome user agent без плъгин

Google Maps линк за писане на ревю

Преди почти 2 години публикувах статия как може да се вземе линк за писане на ревю тук. За съжаление няколко месеца след това механизма вече не работеше и сега ще ви покажа нов и работещ механизъм.

Първо ще ви трябва Google Chrome който можете да изтеглите оттук. След това ще ви трябва едно разширение Generate Links което се инсталира оттук.

След като имате и Chrome инсталиран и Generate Links  вече го правите ето така: Отваряте maps.google.com и намирате обекта който ви интересува. За нашите нужди ще използваме „Алоха България“

След това кликаме на бутона Generate Links И честито! Линковете са следните За директно отваряне на обекта във Maps: https://www.google.com/maps?cid=1486783925008404561 Линк за писане на ревю: https://search.google.com/local/writereview?placeid=ChIJl7ZlYeqEqkARURDjOxoeohQ

Сега вече втория линк може да бъде изпратен по електронната поща. може да бъде споделен по социалните мрежи или дори да бъде направен като QR код който посетителите да използват. Разбира се не злоупотребявайте със писане на фалшиви ревюта на „Алоха България“. Те просто са използвани за онагледяване на тази публикация и не е пролят нито един милиграм колаген.
Google Maps линк за писане на ревю

Интервю на Гласове със Андрей Райчев

Андрей описва миналото и прехода.

„попадат под най-страшното определение за човека, съществото с илюзии, формулирано от Лао Дзъ: Който не знае къде отива, отива другаде.
Те винаги, дори когато им се струва, че успяват, попадат другаде. Това е тяхна задължителна съдба“

Интервю с Андрей Райчев част 1
Интервю с Андрей Райчев част 2
Интервю с Андрей Райчев част 3

Интервю на Гласове със Андрей Райчев

macOS поправка на счупени приложения

Едно от най-досадните неща във новите macOS (OSX) е когато каже, че дадено приложение е повредено и няма да работи повече. Това се причинява от новия GateKeeper който вече не позволява на неподписани приложения или счупени такива да работят.

Ето и как изглежда това:
macos damaged app
И защо се появява:
gatekeeper
забележете, че липсва „Anywhere“.

Ето и как можете да го оправите:
1. Отваряте терминал
2. Пишете това:
sudo spctl –master-disable
забележете че има две тирета и така и трябва да бъде
3. Ще бъдете помолени да си оставите паролата.

Сега вече можете да пускате приложения:

Тъй като „Anywhere“ вече присъства.

Ако искате да го върнете следвайте горните стъпки, но за точка 2 напишете това:
sudo spctl –master-enable

macOS поправка на счупени приложения

Prince of Persia Cheats

Ако сте играли оригиналния Prince of Persia оттук:
https://archive.org/details/msdos_Prince_of_Persia_1990
ето и как да си улесните живота със малко чийтване.

Първо натискате Ctrl-Q за да излезете от играта. После го пускате така „prince megahit“. След което можете да натискате следните клавиши:
+ – добавя още време
Shift-L – минава на следващото ниво
Shift-T – дава още животи
Shift-S – лекува изгубени животи
Shift-W – позволява летене докато падате
K – убива противника на екрана

Има и още няколко комбинации които можете да видите тук

Prince of Persia Cheats

Редирект Хаос Мтел част 2

Както във предната част ви показах, че има проблеми при редиректи след по-детайлен анализ то се оказа, че те даже са и по-големи.

Намери се едно огледално копие на Debian:
http://debian.mobiltel.bg/

На следния адрес:
http://w4.mtel.net
може да бъде намерен сайта на GPS.BG:
http://www.gps.bg

Сайта на една известна адвокатска кантора може да бъде видян по няколко начина:
http://mbridge.mtel.net/
http://ipabg.mtel.net/
http://balkandji.mtel.net/
http://dom.mtel.net/
http://marisimone.mtel.net/
http://a.mtel.net/

Тук и
http://w6.mtel.net/
има някакъв изоставен Tomcat, който за сметка на това също е добре индексиран.

Далеч по-интересното е какво се случва със останалите домейни на придобити компании през времето. Това са 3 компании – Близу, СпектърНет и МегаЛан.

Започваме със Близу:
$ curl -I blizoo.bg
HTTP/1.1 301 Moved Permanently
Date: Fri, 17 Aug 2018 11:43:57 GMT
Server: Apache/2.4.25 (FreeBSD) OpenSSL/1.0.2k-freebsd PHP/7.0.17
Location: http://www.blizoo.bg/
Content-Type: text/html; charset=iso-8859-1

$ curl -I www.blizoo.bg
HTTP/1.1 301 Moved Permanently
Date: Fri, 17 Aug 2018 11:43:59 GMT
Server: Apache/2.4.25 (FreeBSD) OpenSSL/1.0.2k-freebsd PHP/7.0.17
X-Powered-By: PHP/7.0.17
Set-Cookie: PHPSESSID=vcpe31mj0lh1r66m3snkofrga4; path=/; domain=.blizoo.bg
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Location: https://www.a1.bg/blanding
Content-Type: text/html; charset=UTF-8

$ curl -I https://www.blizoo.bg
HTTP/1.1 301 Moved Permanently
Date: Fri, 17 Aug 2018 11:44:05 GMT
Server: Apache/2.4.25 (FreeBSD) OpenSSL/1.0.2k-freebsd PHP/7.0.17
X-Powered-By: PHP/7.0.17
Set-Cookie: PHPSESSID=esk78doapo8ncgda4j1ddffj75; path=/; domain=.blizoo.bg
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Location: https://www.a1.bg/blanding
Content-Type: text/html; charset=UTF-8

$ curl -I https://blizoo.bg
HTTP/1.1 301 Moved Permanently
Date: Fri, 17 Aug 2018 11:44:08 GMT
Server: Apache/2.4.25 (FreeBSD) OpenSSL/1.0.2k-freebsd PHP/7.0.17
Location: http://www.blizoo.bg/
Content-Type: text/html; charset=iso-8859-1

Както виждаме има някакви редиректи и те работят по някакъв начин. Интересното е, че стария сайт обаче още работи:
$ curl -I www.blizoo.bg/images/Root/downloads/gt/p3_pricelist_blizoo.pdf
HTTP/1.1 200 OK
Date: Fri, 17 Aug 2018 11:43:38 GMT
Server: Apache/2.4.25 (FreeBSD) OpenSSL/1.0.2k-freebsd PHP/7.0.17
Last-Modified: Thu, 28 Jan 2016 09:52:29 GMT
ETag: "118c7c-52a61e06d3140"
Accept-Ranges: bytes
Content-Length: 1150076
Cache-Control: max-age=86400
Expires: Sat, 18 Aug 2018 11:43:38 GMT
Content-Type: application/pdf

$ curl -I https://www.blizoo.bg/images/Root/downloads/gt/p3_pricelist_blizoo.pdf
HTTP/1.1 200 OK
Date: Fri, 17 Aug 2018 11:54:25 GMT
Server: Apache/2.4.25 (FreeBSD) OpenSSL/1.0.2k-freebsd PHP/7.0.17
Last-Modified: Thu, 28 Jan 2016 09:52:29 GMT
ETag: "118c7c-52a61e06d3140"
Accept-Ranges: bytes
Content-Length: 1150076
Cache-Control: max-age=86400
Expires: Sat, 18 Aug 2018 11:54:25 GMT
Content-Type: application/pdf

Или поне някакви части от него са все още видими. За да бъде объркването пълно си има и напълно работещи редиректи вътре в самия сайт:
$ curl -I blizoo.bg/images/Root/downloads/gt/p3_pricelist_blizoo.pdf
HTTP/1.1 301 Moved Permanently
Date: Fri, 17 Aug 2018 11:54:13 GMT
Server: Apache/2.4.25 (FreeBSD) OpenSSL/1.0.2k-freebsd PHP/7.0.17
Location: http://www.blizoo.bg/images/Root/downloads/gt/p3_pricelist_blizoo.pdf
Cache-Control: max-age=2592000
Expires: Sun, 16 Sep 2018 11:54:13 GMT
Content-Type: text/html; charset=iso-8859-1

$ curl -I https://blizoo.bg/images/Root/downloads/gt/p3_pricelist_blizoo.pdf
HTTP/1.1 301 Moved Permanently
Date: Fri, 17 Aug 2018 11:54:20 GMT
Server: Apache/2.4.25 (FreeBSD) OpenSSL/1.0.2k-freebsd PHP/7.0.17
Location: http://www.blizoo.bg/images/Root/downloads/gt/p3_pricelist_blizoo.pdf
Cache-Control: max-age=2592000
Expires: Sun, 16 Sep 2018 11:54:20 GMT
Content-Type: text/html; charset=iso-8859-1

И ето още една част:

$ curl -I https://www.blizoo.bg/images/Root/downloads/gt/
HTTP/1.1 403 Forbidden
Date: Fri, 17 Aug 2018 11:56:31 GMT
Server: Apache/2.4.25 (FreeBSD) OpenSSL/1.0.2k-freebsd PHP/7.0.17
Content-Type: text/html; charset=iso-8859-1

$ curl -I http://www.blizoo.bg/images/Root/downloads/gt/
HTTP/1.1 403 Forbidden
Date: Fri, 17 Aug 2018 11:56:45 GMT
Server: Apache/2.4.25 (FreeBSD) OpenSSL/1.0.2k-freebsd PHP/7.0.17
Content-Type: text/html; charset=iso-8859-1< $ curl -I https://blizoo.bg/images/Root/downloads/gt/
HTTP/1.1 301 Moved Permanently
Date: Fri, 17 Aug 2018 11:56:37 GMT
Server: Apache/2.4.25 (FreeBSD) OpenSSL/1.0.2k-freebsd PHP/7.0.17
Location: http://www.blizoo.bg/images/Root/downloads/gt/
Content-Type: text/html; charset=iso-8859-1

$ curl -I http://blizoo.bg/images/Root/downloads/gt/
HTTP/1.1 301 Moved Permanently
Date: Fri, 17 Aug 2018 11:56:42 GMT
Server: Apache/2.4.25 (FreeBSD) OpenSSL/1.0.2k-freebsd PHP/7.0.17
Location: http://www.blizoo.bg/images/Root/downloads/gt/
Content-Type: text/html; charset=iso-8859-1
/code>

И още един файл който е важен:
$ curl -I http://www.blizoo.bg/robots.txt
HTTP/1.1 200 OK
Date: Fri, 17 Aug 2018 12:02:53 GMT
Server: Apache/2.4.25 (FreeBSD) OpenSSL/1.0.2k-freebsd PHP/7.0.17
Last-Modified: Tue, 04 Dec 2012 15:52:37 GMT
ETag: "18-4d008dadbdb40"
Accept-Ranges: bytes
Content-Length: 24
Content-Type: text/plain

Това допълнително обърква роботите и те продължават да се опитват да индексират стария сайт на Близу.
Затова навсякъде се казва когато се прави миграция на домейн към друг да се прави цялостен 301 редирект от стария към новия.

Втората закупена компания е Мегалан:
curl -I megalan.bg
HTTP/1.1 302 Redirect
Content-Length: 145
Content-Type: text/html; charset=UTF-8
Location: https://www.megalan.bg
Server: Microsoft-IIS/8.5
Date: Fri, 17 Aug 2018 12:07:41 GMT

$ curl -I www.megalan.bg -L
curl: (7) Failed to connect to www.megalan.bg port 80: Operation timed out

$ curl -I https://www.megalan.bg -L
curl: (7) Failed to connect to www.megalan.bg port 443: Network is unreachable

$ curl -I megalan.bg/robots.txt -L
HTTP/1.1 302 Redirect
Content-Length: 145
Content-Type: text/html; charset=UTF-8
Location: https://www.megalan.bg
Server: Microsoft-IIS/8.5
Date: Fri, 17 Aug 2018 12:25:26 GMT

За жалост тук не виждаме никакъв реализиран редирект и не можем да осъществим връзка със www.megalan.bg.
Което по същество си е още една пропусната възможност защото домейна беше много добре индексиран във миналото като интернет доставчик за София.

И последния участник е Спектърнет. По стар народен обичай за тукашните ширини те са използвали 2 домейна като основни:
spnet.net
spectrumnet.bg
а година преди придобиването им от МТел бяха закупили и небезизвестните Орбител:
orbitel.bg
заедно със хитовия им проект тогава
hit.bg

Но нека да започнем по реда им:
$ curl spnet.net -I
HTTP/1.1 403 Forbidden
Date: Fri, 17 Aug 2018 12:37:57 GMT
Server: Apache
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Robots-Tag: none
X-Download-Options: noopen
X-Permitted-Cross-Domain-Policies: none
Content-Type: text/html; charset=iso-8859-1

$ curl www.spnet.net -I
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Fri, 17 Aug 2018 12:38:00 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: close
Location: http://www.mtel.bg/spnet
Vary: Accept-Encoding

$ curl https://spnet.net -I
HTTP/1.1 403 Forbidden
Date: Fri, 17 Aug 2018 12:39:04 GMT
Server: Apache
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Robots-Tag: none
X-Download-Options: noopen
X-Permitted-Cross-Domain-Policies: none
Last-Modified: Thu, 16 Oct 2014 13:20:58 GMT
Accept-Ranges: bytes
Content-Length: 4897
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Pragma: no-cache
Content-Type: text/html; charset=UTF-8

$ curl https://www.spnet.net -I -k
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Fri, 17 Aug 2018 12:39:11 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: close
Location: http://www.mtel.bg/spnet
Vary: Accept-Encoding

Тук вече редиректите са реализирани, но само на ниво www. Когато се достъпва домейна без www се връща грешка 403.
Интересното е, че на този домейн е вързано и огледалното копие на Debian:
http://debian.spnet.net/
но то може да се достъпи и ето така:
http://bbgra.spnet.net

Има обаче проблем при достъпа на spectrumnet.bg:
$ curl -I http://www.spectrumnet.bg/
curl: (7) Failed to connect to www.spectrumnet.bg port 80: Operation timed out
$ curl -I http://spectrumnet.bg/
curl: (7) Failed to connect to spectrumnet.bg port 80: Operation timed out
$ curl -I https://www.spectrumnet.bg/
curl: (7) Failed to connect to www.spectrumnet.bg port 443: Operation timed out
$ curl -I https://spectrumnet.bg/
curl: (7) Failed to connect to spectrumnet.bg port 443: Operation timed out

Така, че този домейн също попада във графата "пропуснати възможности".

Нека да видим и какво се случва със Орбител:
$ curl -I orbitel.bg
curl: (6) Could not resolve host: orbitel.bg
$ curl -I www.orbitel.bg
curl: (6) Could not resolve host: www.orbitel.bg

И Хит:
$ curl -I hit.bg
curl: (7) Failed to connect to hit.bg port 80: Operation timed out
$ curl -I www.hit.bg
curl: (7) Failed to connect to www.hit.bg port 80: Operation timed out

Още една "пропусната възможност".

Накратко както виждате сами вместо да се направят хубави редиректи и да се усили силата основния домейн (вече) А1.
Редиректите където са направени или са половинчато направени като допълнително объркват ботовете или самите домейни не работят поради някаква причина.

Може би мениджърите на А1 отговорни за онлайн дейностите би било хубаво да направят един хубав одит на сайтовете си преди да продължат напред със развиването на основния си сайт.

Редирект Хаос Мтел част 2

Редирект Хаос Мтел

Сега ще ви покажа как неправилни редиректи може да ви навредят много.

Както знаете Мтел вече не съществува и имаме А1. Нека да видим какво се случва със редиректите на сайта им?

Започваме със https://mobiltel.bg

$ curl https://mobiltel.bg/ -L -I -k
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 16 Aug 2018 12:02:33 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: close
Location: http://www.mtel.bg/
Vary: Accept-Encoding

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 16 Aug 2018 12:02:33 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: close
Location: http://www.a1.bg/mtel-stava-A1/
Vary: Accept-Encoding

HTTP/1.1 200 OK
Server: nginx
Date: Thu, 16 Aug 2018 12:02:33 GMT
Content-Type: text/html
Connection: close
Last-Modified: Tue, 07 Aug 2018 08:31:39 GMT
ETag: "181300-e8b2-572d43907d0c0"
Accept-Ranges: bytes
Content-Length: 59570
Vary: Accept-Encoding

И проблема лъсна – сайта на A1 може да се гледа и под HTTP. Продължаваме със http

$ curl http://mobiltel.bg/ -L -I -k
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 16 Aug 2018 12:03:32 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: close
Location: http://www.mtel.bg/
Vary: Accept-Encoding

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 16 Aug 2018 12:03:32 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: close
Location: http://www.a1.bg/mtel-stava-A1/
Vary: Accept-Encoding

HTTP/1.1 200 OK
Server: nginx
Date: Thu, 16 Aug 2018 12:03:32 GMT
Content-Type: text/html
Connection: close
Last-Modified: Tue, 07 Aug 2018 08:31:39 GMT
ETag: "182509-e8b2-572d43907d0c0"
Accept-Ranges: bytes
Content-Length: 59570
Vary: Accept-Encoding

И добавяме и www със и без HTTPS
$ curl http://www.mobiltel.bg/ -L -I -k
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 16 Aug 2018 12:04:49 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: close
Location: http://www.mtel.bg/
Vary: Accept-Encoding

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 16 Aug 2018 12:04:49 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: close
Location: http://www.a1.bg/mtel-stava-A1/
Vary: Accept-Encoding

HTTP/1.1 200 OK
Server: nginx
Date: Thu, 16 Aug 2018 12:04:50 GMT
Content-Type: text/html
Connection: close
Last-Modified: Tue, 07 Aug 2018 08:31:39 GMT
ETag: "181300-e8b2-572d43907d0c0"
Accept-Ranges: bytes
Content-Length: 59570
Vary: Accept-Encoding

$ curl https://www.mobiltel.bg/ -L -I -k
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 16 Aug 2018 12:04:55 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: close
Location: http://www.mtel.bg/
Vary: Accept-Encoding

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 16 Aug 2018 12:04:55 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: close
Location: http://www.a1.bg/mtel-stava-A1/
Vary: Accept-Encoding

HTTP/1.1 200 OK
Server: nginx
Date: Thu, 16 Aug 2018 12:04:55 GMT
Content-Type: text/html
Connection: close
Last-Modified: Tue, 07 Aug 2018 08:31:39 GMT
ETag: "182509-e8b2-572d43907d0c0"
Accept-Ranges: bytes
Content-Length: 59570
Vary: Accept-Encoding

Интересното е, че редиректа работи само към основната страница. Ако се зададе вътрешна страница линка се предава към последващия редирект.

$ curl https://www.mobiltel.bg/robots.txt -L -I -k
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 16 Aug 2018 12:09:00 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: close
Location: http://www.mtel.bg/robots.txt
Vary: Accept-Encoding

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 16 Aug 2018 12:09:00 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: close
Location: http://www.a1.bg/robots.txt
Vary: Accept-Encoding

HTTP/1.1 200 OK
Server: nginx
Date: Thu, 16 Aug 2018 12:09:00 GMT
Content-Type: text/plain
Connection: close
Last-Modified: Thu, 17 May 2018 12:29:47 GMT
ETag: "183f09-4b8-56c65fdaca4c0"
Accept-Ranges: bytes
Content-Length: 1208
Vary: Accept-Encoding

Продължаваме със един друг домейн mtel.net

$ curl http://www.mtel.net/ -L -I -k
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 16 Aug 2018 12:11:17 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: close
Location: http://www.mtel.bg/
Vary: Accept-Encoding

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 16 Aug 2018 12:11:17 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: close
Location: http://www.a1.bg/mtel-stava-A1/
Vary: Accept-Encoding

HTTP/1.1 200 OK
Server: nginx
Date: Thu, 16 Aug 2018 12:11:17 GMT
Content-Type: text/html
Connection: close
Last-Modified: Tue, 07 Aug 2018 08:31:39 GMT
ETag: "182509-e8b2-572d43907d0c0"
Accept-Ranges: bytes
Content-Length: 59570
Vary: Accept-Encoding

$ curl http://mtel.net/ -L -I -k
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 16 Aug 2018 12:11:46 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: close
Location: http://www.mtel.bg/
Vary: Accept-Encoding

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 16 Aug 2018 12:11:46 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: close
Location: http://www.a1.bg/mtel-stava-A1/
Vary: Accept-Encoding

HTTP/1.1 200 OK
Server: nginx
Date: Thu, 16 Aug 2018 12:11:46 GMT
Content-Type: text/html
Connection: close
Last-Modified: Tue, 07 Aug 2018 08:31:39 GMT
ETag: "182509-e8b2-572d43907d0c0"
Accept-Ranges: bytes
Content-Length: 59570
Vary: Accept-Encoding

Същия резултат е и под HTTPS със или без www отпред.

Следващия домейн е mtel.bg койо май издържа най-дълго:
$ curl http://www.mtel.bg/ -L -I -k
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 16 Aug 2018 12:21:34 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: close
Location: http://www.a1.bg/mtel-stava-A1/
Vary: Accept-Encoding

HTTP/1.1 200 OK
Server: nginx
Date: Thu, 16 Aug 2018 12:21:34 GMT
Content-Type: text/html
Connection: close
Last-Modified: Tue, 07 Aug 2018 08:31:39 GMT
ETag: "182509-e8b2-572d43907d0c0"
Accept-Ranges: bytes
Content-Length: 59570
Vary: Accept-Encoding

$ curl http://mtel.bg/ -L -I -k
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 16 Aug 2018 12:21:41 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: close
Location: http://www.a1.bg/mtel-stava-A1/
Vary: Accept-Encoding

HTTP/1.1 200 OK
Server: nginx
Date: Thu, 16 Aug 2018 12:21:41 GMT
Content-Type: text/html
Connection: close
Last-Modified: Tue, 07 Aug 2018 08:31:39 GMT
ETag: "246b22-e8b2-572d43907d0c0"
Accept-Ranges: bytes
Content-Length: 59570
Vary: Accept-Encoding

Същия резултат е и под HTTPS със или без WWW.

Доста по-интересно е тук:
http://www.a1.bg/sitemap.xml
където линковете са към:
http://www.mtel.bg/sitemap_www.xml
http://www.mtel.bg/sitemap_products.xml
и изглежда генерирането им е спряло някъде през Май 2018та.

Влизаме във сайтмапа със продуктите където също сочат към mtel.bg и си харесваме първия:
https://www.mtel.bg/ustroystva/laptopi/acer/travelmate-x349.3370
и отваряме сорса. Намираме още 2 линка към mtel.bg:
http://mtel.bg/public/file/id/ebd9dc98957b723ce7be035e56dfcfe9/acer-travelmate-x349-product.png
https://media.mtel.bg/newsite2015/images/mega-menu/myki.jpg

Втория домейн може да се зареди със или без HTTPS разбира се. По-фрапантното е, че същата снимка може да се намери и тук:
http://media.a1.bg/newsite2015/images/mega-menu/myki.jpg
https://media.a1.bg/newsite2015/images/mega-menu/myki.jpg

Разбира се този хаос има и една приятна новина – все пак логването минава задължително през HTTPS:
$ curl -I http://a1.bg/moyat-a1-upravlyavay-sam-svoite-uslugi -L
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 16 Aug 2018 12:31:39 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: close
Location: http://www.a1.bg/moyat-a1-upravlyavay-sam-svoite-uslugi
Vary: Accept-Encoding

HTTP/1.1 302 Found
Server: nginx
Date: Thu, 16 Aug 2018 12:31:39 GMT
Content-Type: text/html
Connection: close
Set-Cookie: PHPSESSID=i7hoh0m33jdqkf36rldg41vlo6; path=/; domain=www.a1.bg; HttpOnly
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=dss9df9253jluc4jbejkpjtqa3; path=/; domain=www.a1.bg; HttpOnly
Set-Cookie: device=desktop; expires=Sun, 13-Aug-2028 12:31:39 GMT; path=/; domain=.a1.bg
Set-Cookie: device=desktop; expires=Sun, 13-Aug-2028 12:31:39 GMT; path=/; domain=.a1.bg
Set-Cookie: device=desktop; expires=Sun, 13-Aug-2028 12:31:39 GMT; path=/; domain=.a1.bg
Location: https://www.a1.bg/moyat-a1-upravlyavay-sam-svoite-uslugi
Vary: Accept-Encoding

HTTP/1.1 200 OK
Server: nginx
Date: Thu, 16 Aug 2018 12:31:41 GMT
Content-Type: text/html
Connection: close
Set-Cookie: PHPSESSID=kl0lfvrmpp4pa4182fm77mrfm3; path=/; domain=www.a1.bg; HttpOnly
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=v3a01obe7oocra81c2hceir6e1; path=/; domain=www.a1.bg; HttpOnly
Set-Cookie: device=desktop; expires=Sun, 13-Aug-2028 12:31:41 GMT; path=/; domain=.a1.bg
Set-Cookie: device=desktop; expires=Sun, 13-Aug-2028 12:31:41 GMT; path=/; domain=.a1.bg
Set-Cookie: device=desktop; expires=Sun, 13-Aug-2028 12:31:41 GMT; path=/; domain=.a1.bg
Vary: Accept-Encoding

$ curl -I http://www.a1.bg/moyat-a1-upravlyavay-sam-svoite-uslugi -L
HTTP/1.1 302 Found
Server: nginx
Date: Thu, 16 Aug 2018 12:32:04 GMT
Content-Type: text/html
Connection: close
Set-Cookie: PHPSESSID=q36aqoaea4udfln23p4p5mms00; path=/; domain=www.a1.bg; HttpOnly
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=t8nns92n1i1qjme3b55dgnoq03; path=/; domain=www.a1.bg; HttpOnly
Set-Cookie: device=desktop; expires=Sun, 13-Aug-2028 12:32:04 GMT; path=/; domain=.a1.bg
Set-Cookie: device=desktop; expires=Sun, 13-Aug-2028 12:32:04 GMT; path=/; domain=.a1.bg
Set-Cookie: device=desktop; expires=Sun, 13-Aug-2028 12:32:04 GMT; path=/; domain=.a1.bg
Location: https://www.a1.bg/moyat-a1-upravlyavay-sam-svoite-uslugi
Vary: Accept-Encoding

HTTP/1.1 200 OK
Server: nginx
Date: Thu, 16 Aug 2018 12:32:05 GMT
Content-Type: text/html
Connection: close
Set-Cookie: PHPSESSID=bl1fub9vcmqlnjmug87nsam4a7; path=/; domain=www.a1.bg; HttpOnly
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=di8qdhfdkd56rg68ca8757kta4; path=/; domain=www.a1.bg; HttpOnly
Set-Cookie: device=desktop; expires=Sun, 13-Aug-2028 12:32:04 GMT; path=/; domain=.a1.bg
Set-Cookie: device=desktop; expires=Sun, 13-Aug-2028 12:32:04 GMT; path=/; domain=.a1.bg
Set-Cookie: device=desktop; expires=Sun, 13-Aug-2028 12:32:04 GMT; path=/; domain=.a1.bg
Vary: Accept-Encoding

Обаче защо със 302 редирект?

И последен тест със новия домейн А1:

$ curl -I http://a1.bg/test -L
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 16 Aug 2018 12:37:21 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: close
Location: http://www.a1.bg/test
Vary: Accept-Encoding

HTTP/1.1 404 Not Found
Server: nginx
Date: Thu, 16 Aug 2018 12:37:21 GMT
Content-Type: text/html
Connection: close
Set-Cookie: PHPSESSID=em2uptm6ja7735d74ons6srka1; path=/; domain=www.a1.bg; HttpOnly
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=bjfopn6pgd82glq69cp9sumt97; path=/; domain=www.a1.bg; HttpOnly
Set-Cookie: device=desktop; expires=Sun, 13-Aug-2028 12:37:21 GMT; path=/; domain=.a1.bg
Vary: Accept-Encoding

$ curl -I https://a1.bg/test -L
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 16 Aug 2018 12:36:41 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: close
Location: http://www.a1.bg/test
Vary: Accept-Encoding

HTTP/1.1 404 Not Found
Server: nginx
Date: Thu, 16 Aug 2018 12:36:41 GMT
Content-Type: text/html
Connection: close
Set-Cookie: PHPSESSID=rurlb92cva9hkr3tac8mf95l81; path=/; domain=www.a1.bg; HttpOnly
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=u9190l2kanjvkbl1jajm2s3b33; path=/; domain=www.a1.bg; HttpOnly
Set-Cookie: device=desktop; expires=Sun, 13-Aug-2028 12:36:41 GMT; path=/; domain=.a1.bg
Vary: Accept-Encoding

Разбира се за да бъде хаоса пълен canonical на техните адреси сочи към HTTPS://WWW което допълнително обърква бота кой е основния домейн.

Накратко ако правите редиректи не правете като тях. Това е и основната причина сайта все още да се вижда така:
site:mtel.bg
site:mobiltel.bg
site:mtel.net
и новия A1 да е частично индексиран близо 3 месеца след пускането му.

Статията има допълнение което може да бъде прочетено ето тук.

Редирект Хаос Мтел

PHP7 Mac

Ако сте на Мак и не ви се ползват Портовете или Самоварките (ports/homebrew) обаче PHP 7 ви липсва…

https://php-osx.liip.ch

Поддържа се всичко от PHP 5.3 до 7.3 и работи на всички macOS 10.6 до 10.13.

PHP7 Mac