HTTP-редирект в WordPress.

Чуть не забыл, ко вчерашнему разговору с товарищем, который про это спрашивал. Ну я тебя, товарищ, немного надул, ибо не погуглил. Не надо никаких костылей с header ('Location: http://natribu.org'), если по каким-то причинам надо делать редирект со страниц WordPress, то есть стандартная функция

wp_redirect( $location, $status );
где:
$location — адрес, куда посылаем.
$status — код HTTP, статус перенаправления.

Подробности, например, тут [Копия]

Вот тестовый шорткод, работает, но где-то реально использовать тупым копипастом не сильно рекомендую, тому ще, во-первых, нет ни единой проверки, во-вторых, если он будет доступен нечестному юзеру, то юзер таким образом может перенаправить хороших пользователей на какую-нибудь бяку, а в-третьих, в мануале написано, что оно из шорткода вроде как работать не должно. Но у меня работает. Так что использовать просто как пример вызова функции wp_redirect и внимательно читать мануал.

Страница со списком тегов (или рубрик) WordPress

Если перейти в блоге WordPress по ссылке на любой тег, то попадем на страничку, содержащую анонсы постов по данному тегу, адрес странички будет примерно такой:

http://tolik-punkoff.com/tag/manuals/

Где manuals — собственно, выбранный тег, а tag — префикс для URL-адреса меток, который можно настроить в консоли WordPress в разделе Настройки — Постоянные ссылки.

Идея такого формата адреса достаточно очевидна, убираешь из строки адреса выбранный тег и попадаешь в список всех тегов, как например это сделано в ЖЖ или LJR

Вообще-то в профессиональной теме WordPress это дело должно бы работать из коробки, потому что вообще-то плохо, если раздел сайта, который логически существовать должен, не существует. И так думаю не я один, а как выяснилось из логов, и роботы. Правда это оказался робот какого-то мелкого поисковика, не Google или Яндекса, но все равно неприятно.
Так вот, если тема не сильно профессиональная, или разработчик забыл о такой мелочи, то посетитель сайта попадет по такой ссылке на страницу 404.

Исправляем досадную неприятность.

Читать далее…

Скачать заметку в формате PDF

Настройка XDMCP, удаленного подключения к рабочему столу Linux

Не так давно я затрагивал вопрос настройки X11 Forwarding [Копия], что позволяет через ssh запускать отдельные графические приложения на удаленной Linux-машине (сервере). Теперь буду настраивать удаленный доступ к рабочему столу через XDMCP.
XDMCP внешне похож на RDP в Windows, т.е. при подключении пользователю будет предложено ввести логин и пароль в окне входа в систему и на экране отобразится удаленный рабочий стол. Фактически, на удаленной машине в памяти висит Display Manager (GDM, XDM и т.д.) и слушает 177 порт UDP, если от X-сервера с другой машины поступает запрос, Display Manager начинает с ним общаться, принимать оттуда изображение, а туда передавать координаты мыши и нажатия с клавиатуры, рисует окошко входа в систему. Если пользователь предоставил корректные данные для входа в систему, то он сможет работать с удаленным рабочим столом.

Внимание! Не все Display Manager’ы поддерживают работу по протоколу XDMCP. Точно поддерживают XDM, GDM, KDM и LightDM [3], так что проверьте в первую очередь, какой у вас Display Manager, и может ли он работать по XDMCP. Например, на одной из машин, к которой требовался доступ по XDMCP пришлось вместо LXDM ставить GDM.
Внимание! Протокол XDMCP довольно слабо защищен, так что его не рекомендуется использовать через Интернет без дополнительного шифрования. У нас, например, сделан доступ через VPN.

Настройка файервола

Первым делом необходимо открыть на файерволе нужные порты. Обязательно для входящих соединений открывается порт UDP 177. Если соединение планируется из Windows, то необходимо также открыть порты TCP 6000-6005 в обоих направлениях (входящие и исходящие соединения). Для соединения из Gnome вроде как надо открыть также в обоих направлениях порты TCP 16001 и 35091 [2]. На практике я проверял только подключение из Windows.
Команды для настройки файервола:

# XDMCP
echo "Open 177 port UDP (XDMCP) for Avallon AG clients..."
iptables -A INPUT -s x.x.x.x/yy -p udp --dport 177 -j ACCEPT
iptables -A OUTPUT -s x.x.x.x/yy -p udp --sport 177 -j ACCEPT

echo "Open 6000:6005 ports (Windows XDMCP) in both directions for AAG clients..."
iptables -A INPUT -s x.x.x.x/yy -p tcp -m multiport --dports 6000:6005 -j ACCEPT
iptables -A OUTPUT -s x.x.x.x/yy -p tcp -m multiport --sports 6000:6005 -j ACCEPT

iptables -A INPUT -s x.x.x.x/yy -p tcp -m multiport --sports 6000:6005 -j ACCEPT
iptables -A OUTPUT -s x.x.x.x/yy -p tcp -m multiport --dports 6000:6005 -j ACCEPT

Вместо x.x.x.x/yy надо подставить адрес компьютера с которого будем связываться с компьютером под Linux, или маску подсети.

Настройка Display Manager’а

У меня был GDM, поэтому приведу его как основной, остальные дам для справки.
Необходимо найти файл custom.conf, в источниках написано, что лежать он должен по адресу /etc/gdm/custom.conf, но на самом деле это зависит от дистрибьютива. В моем случае файл находился здесь: /etc/X11/gdm/custom.conf

В файле, который выглядит, как обычный INI-файл необходимо найти секцию [xdmcp] и вписать туда следующие параметры:

Enable=true
Port=177

Как видите, можно задать альтернативный порт для XDMCP.

Настройка других DM:
Под катом

Внимание! Стоит заметить, что в некоторых случаях конфигурационные файлы могут располагаться в других местах. Если их нет по указанным путям, можно воспользоваться поиском файлов в том же mc

Настройка подключения в Windows

Понадобится уже упомянутый в заметке про X11-Forwarding Xming.
Запускаем XLaunch и устанавливаем конфигурацию.

В первом окне выбираем один из режимов «одного окна», например One window, иначе не даст создать XDMCP сессию, и указываем номер дисплея 0 (обычно 0, если вы специально ничего не переопределяли на сервере, подробнее см. документацию по используемому Display Manager’у):

Описание настройки с иллюстрациями под катом

Если все сделано правильно

То при запуске Xming (через мастер XLaunch или с нужными параметрами) мы увидим окно авторизации в системе:


По клику доступно полноразмерное изображение

Если авторизация удалась, то мы увидим рабочий стол удаленного компьютера.


По клику доступно полноразмерное изображение

Сохранение и использование настроек соединения

Чтобы каждый раз не вписывать и не выбирать вручную все параметры в мастере XLaunch, можно воспользоваться двумя способами:

1. Как ранее говорилось, сохранить конфигурацию в файл *.xlaunch (например xdmcp.xlaunch) и запускать мастер XLaunch, указывая ему с помощью ключа -load файл конфигурации. Мастер XLaunch запустится, но все поля в окнах будут уже предварительно заполнены. Это удобно, если нужно соединяться по XDMCP с несколькими серверами, различающимися только, например, IP-адресом. Можно создать ярлык, в свойствах которого указать параметры к запуску XLaunch:

"C:\Program Files\Xming\XLaunch.exe" -load xdmcp.xlaunch

2. Создать ярлык Xming с нужными параметрами:

"C:\Program Files\Xming\Xming.exe" :0 -clipboard -query 10.10.3.24 -dpi 96

Естественно, вместо 10.10.3.24 нужно подставить свой адрес удаленной машины с XDMCP, а число после -dpi выбрать под свои глаза и монитор.

Источники

1. Удаленный доступ по XDMCP (удаленное подключение к рабочему столу)
2.What Ports Need to be Opened for XDMCP
3.Xdmcp

Копия заметки в PDF

О лавочниках и о т(р)упике коммунизма.

[info]szg_akt2@ljr постоянно наезжает на «лавочников», подспудно противопоставляя их «пролетариям» и «революционерам». Про «революционеров» в некотором смысле соглашусь, потрясения, неизбежно связанные с революцией ни одному предпринимателю, собственнику, не вперлись.
НО! В текущем «капиталистическом» строе, «лавочник», т.е. мелкий собственник, предприниматель, это и есть «гегемон», великий защитник общества, который удерживает общество с одной стороны от скатывания в корпоративный фашизм, когда как в антиутопиях из НФ всем рулит какая-нибудь Umbrella или Genetics, inc. или Microsoft, а с другой стороны — удерживает государство от скатывания в гибридный (с распиздяйством, ибо чиновник не хочет работать, он хочет зарплату) государственный тоталитаризм.

Конкретный пример, две картинки:

РОССИЯ (ГОРФ, Кондопога):
Около хлебного ларька ОЧЕНЬ скользко, продавщица на вопрос товарища отвечает что-то типа «дык ведь ЖКХ не посыпало» (естественно, в ЖКХ скажут, что мы только дворы посыпаем, а у ларьков это в мэрию, а там загоняют по инстанциям между районной и городской управой, как минимум).
ФИНЛЯНДИЯ:
Службы НЕ УСПЕЛИ доехать до моей любимой кафешки по гололеду. А должны были, лавочника, хозяина кофейни не ебет, во-первых, ему НАДО, чтоб клиенты зашли в кафешку, а во-вторых, пиар тоже не лишний. В результате он доплачивает официантам, они чистят и посыпают дорожку песком, а «лавочник» зовет юриста и в его присутствии вешает на дверь объявление — «отсюда дотуда почищено и посыпано за счет Такой-то Такоговича». И я уверен, что он потом обратится в суд, высудит с мэрии компенсацию, и чиновникам придется лизать не только дорожку, которую их службы должны были очистить, но еще и жопу «лавочнику».

-Лавочник — истинный бизнесмен, работает только на себя (но работа только на себя не означает отказ от социальных проектов, это ведь в конечном итоге и в худшем случае — пиар и дополнительные клиенты)
-Лавочник стремится к оптимизированной и счастливой жизни.
-Лавочник отметает вредные мемы и психоконструкты типа «патриотизма», «государства», «бога» и прочего «корпоративного дресс-кода», когда они мешают вести ему бизнес.
-Лавочник — за науку, потому что результаты научных исследований он может применить для уменьшения накладных расходов, соответственно больше оставив себе/больше поделившись с работниками.
-Лавочник за либерализацию и за легалайз в самом широком смысле, потому что тогда открываются новые рынки.
-Лавочник за честную зарплату, ведь если платить работникам слишком мало, они будут саботировать, «а что они делают с грибным жульеном, вам лучше не знать (C)»
-Лавочник за лиьерализацию в политике и экономике, иначе ему нельзя будет работать.
-Лавочник за все хорошее, против всего плохого. Под хорошее-то можно подстроиться, ничего не потеряв, плохое требует больше усилий для оптимизации себя относительно его.

Вот и сравните, бля, на очень простом примере, страны где «лавочники» есть, а где нет. Начнете пихать гнилую моральку про «сопли сирийских детей», тоже найду что ответить.
Удачи!