Неожиданно сам для себя, среди кучи неработающих решений (мой мозг так и не смог осилить в короткие сроки тот волшебный механизм, по которому работает mod_rewrite), я, кажется, нашел наконец решение, которое перенаправит ВСЕ запросы на index.php вне зависимости от того, существует файл, или не существует. И, вдобавок, без жесткого прописывания пути к index.php или названия домена. Автор этого решения добавил также возможность исключать некоторые запросы из перенаправления, так что, если это всё действительно правда и впоследствии не найдется никакой ошибки в работе данных директив, то я буду еще долго писать кипятком.

UPD: Изначальный код оказался неидеальным. Приходится добавить директиву DirectorySlash Off, иначе, если вы захотите убрать trailing slash с URL который попадает на реально существующую директорию, apache будет перенаправлять вас на http://site.com/directory/, а вы его обратно на http://site.com/directory и перенаправление попадёт в цикл, который никогда не завершится.

# Turn rewriting on
Options +FollowSymLinks
DirectorySlash Off
RewriteEngine On
# Redirect requests to index.php
RewriteCond %{REQUEST_URI} !=/index.php
RewriteCond %{REQUEST_URI} !.*\.png$ [NC]
RewriteCond %{REQUEST_URI} !.*\.jpg$ [NC]
RewriteCond %{REQUEST_URI} !.*\.css$ [NC]
RewriteCond %{REQUEST_URI} !.*\.gif$ [NC]
RewriteCond %{REQUEST_URI} !.*\.js$ [NC]
RewriteRule .* /index.php

Ссылка на оригинал: .htaccess redirect all requests to index.php

Оригинал полностью, на случай, если статья с оригинального сайта внезапно проебётся, как это уже не раз бывало со сслыками в сети Интернет.

htaccess Redirect All Requests to Index.php Script

So for one of my website projects I wanted to create a very basic content management system (of sorts). The plan was to have a header and footer template class, and include these from the ‘index.php’. The bit between the header and footer (‘content’) would then be pulled from another file, depending on the URL.

The basic set-up for this kind of CMS is that all requests are sent to one script, which handles working out which files need to be included based on the request URL. If we’re using Apache as our web server, we can do this easily enough using the .htaccess file.

A htaccess file (also known as a distributed configuration file) allows you to configure your web-server on a per-directory basis. One of the handy features of the htaccess file is that we can invoke server-side modules. We can use the mod_rewrite module to redirect or rewrite certain URL requests.

So to set-up our CMS, we need to rewrite all requests to any file on the server to ‘/index.php’. A first attempt at this might be:

    # Turn rewriting on
    Options +FollowSymLinks
    RewriteEngine On
    # Redirect requests to index.php
    RewriteRule .* /index.php

This looks OK, until you think about what will actually happen. We’re redirecting ALL requests to ‘index.php’ – including requests to ‘index.php’… They call this infinite loopage in the biz’. Our next (and much better attempt) would be:

    # Turn rewriting on
    Options +FollowSymLinks
    RewriteEngine On
    # Redirect requests to index.php
    RewriteCond %{REQUEST_URI} !=/index.php
    RewriteRule .* /index.php

This will work well – unless you have things like images, stylesheets, JavaScript or generally any other files we’ve come to expect in a rich internet experience. We can fix this by also excluding requests to these filetypes from the rewrite:

    # Turn rewriting on
    Options +FollowSymLinks
    RewriteEngine On
    # Redirect requests to index.php
    RewriteCond %{REQUEST_URI} !=/index.php
    RewriteCond %{REQUEST_URI} !.*\.png$ [NC]
    RewriteCond %{REQUEST_URI} !.*\.jpg$ [NC]
    RewriteCond %{REQUEST_URI} !.*\.css$ [NC]
    RewriteCond %{REQUEST_URI} !.*\.gif$ [NC]
    RewriteCond %{REQUEST_URI} !.*\.js$ [NC]
    RewriteRule .* /index.php

And there you have it! A (useful) .htaccess file used to redirect all requests to the index.php file! Now for that CMS…

This entry was posted on Sunday, March 14th, 2010 at 6:18 pmand is filed under PHP.

.bashrc

genpwd()
{
  openssl rand -base64 $1|tr -d '\n'|{ read in; echo ${in:0:$1}; }
}

Пример использования:

$ genpwd 8
vBu8waCQ
$ genpwd 16
heitMPgrsMgKR1yk

Заказчик, желающий, чтобы в его офисном пакете идеально отображались предоставленные подрядчиком документы, обязан приобрести за свой счёт для подрядчика такой же.

 

По умолчанию, порты 4444 и 4445 доступны только для 127.0.0.1
Чтобы открыть прокси для LAN сети, нужно будет создать туннели http://192.168.X.Y:7657/i2ptunnel идентичные 4444 и 4445 только с другими номерами. Это легко делается через кнопку "мастер создания туннеля".

i2cp.tcp.bindAllInterfaces=true из FAQ мне не помог.

Если планируется использовать i2p сервер только для себя любимого, то безопаснее пробросить порты 4444 и 4445 через ssh к себе на localhost.

[ ]
 

Твики, уменьшающие изнашиваемость флешки и кое-какие раздражающие факторы.

  1. Отформатировать файловую систему в ext2, которая не ведет журнал изменений, следовательно уменьшится износ ячеек.

    ext2 noatime,nodiratime

  2. Смонтировать временные папки в оперативную память.

    /etc/fstab
    tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
    tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0

  3. Перенести кэщ файрфокса во временную директорию в оперативной памяти

    Firefox -> about:config --> browser.cache.disk.parent_directory --> /tmp

  4. Увеличить промежуток проверки диска при загрузке до 50 запусков и отменить проверку при превышении определенного количества дней.

    sudo tune2fs -c 50 -i 0 /dev/sdXN

[ ]
 

Когда я купил себе телефон и только поставил туда CM 7 там был эффект анимации как при выключении старого телевизора. Но я его отключил, а сегодня захотелось вдруг опять включить. Находится он в очень странном месте и нашел я его только примерно через час поисков. Суть токова:

  1. Должна быть включена галочка
    Настройки -> Настройки Cyanogenmod -> Экран -> Анимация выключения
  2. Надо жмякнуть
    Настройки -> Экран -> Анимация -> Использовать анимацию всегда

И это приведет к появлению CRT эффекта анимации экрана блокировки цианогенмода 7 без смс и регистрации.

Больше двух месяцев назад я сподобился купить Aten CS1734B, о чем не жалею. Периферия такова: VGA монитор Dell E178FPv, проводная usb клавиатура Microsoft Natural 4000, беспроводная usb мышь Logitech M185. ОС - Ubuntu 12.04 LTS. Буду краток.

Достоинства:

  • Спасённые нервные клетки! Это просто охуительно! Прибор не требует чтобы его няньчили - один раз поставил и забыл! Неужели это правда? Я до сих пор не верю своим, блядь, глазам!
  • Надежен - за два месяца не было ни одного сбоя в работе, переключаюсь по 7-12 раз между тремя компьютерами с разными ОС ежедневно.
  • Цена.
  • Возможность переключения при помощи клавиатуры.
  • Техподдержка - люди в ней живы, и качественно отвечают на вопросы простых смертных (см изначальный пост).
  • Возможность втыкать в Aten флешку и комплектация с непонятными, но наверняка полезными проводами. Казалось бы - какая фигня. Но нет. Это означает одно - внимание к деталям, которое было уделено при разработке устройства.

Недостатки:

  • Подозрительно пищит, будучи подключенным к компьютерам, но не включенным при этом в сеть. Это странно, но это так. И поэтому я оставляю его включенным круглосуточно, не знаю, оправданы ли мои опасения. Естественно, если компьютеры в которые воткнут Aten, тоже будут выключены - то никакого писка не будет. Но, тем не менее, это настораживает поначалу. При включении в розетку писк пропадает, никаких звуков абсолютно не издается, за исключением писка динамика при переключении с компа на комп.

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

Потратить ли на 3000 руб. больше и купить CS1734B вместо гнойных глючных железяк, которые не работают? На мой взгляд, ответ очевиден. Прискорбно, конечно, что я ссу кипятком оттого, что что-то в этом мире просто берет и работает, но тем не менее. Я считаю, что этот прибор стоит тех денег, которые за него просят.

Если будут вопросы - пишите в комментарии, всем отвечу.

  1. Включить в BIOS обязательный Power On при восстановлении электроподачи.
  2. Отключить в BIOS ожидание клавиатуры при загрузке.
  3. Прописать в /etc/default/grub
    GRUB_RECORDFAIL_TIMEOUT=1
  4. Прописать в /etc/default/grub
    GRUB_TERMINAL=console
  5. Прописать в /etc/fstab nobootwait флаг

    UUID=ce752aa9-9682-492c-86ce-5c460f892805 /media/ce752aa9 ext3 rw,nobootwait 0 0

  6. Прописать в /etc/fstab нули

    UUID=ce752aa9-9682-492c-86ce-5c460f892805 /media/ce752aa9 ext3 rw,nobootwait 0 0>

  7. Совершить ритуальный
    sudo update-grub

Многословный вариант, который пока прочитаешь, забудешь что сделать надо было:

  1. Убрал необходимость тыкать кнопку после grub 2 fail. После внезапного отключения электричества, grub всегда требовал нажать кнопку, хотя к нему и клавиатуры-то не подключено. чтобы исправить это, необходимо отредактировать
    /etc/grub/default следующим образом:

    GRUB_RECORDFAIL_TIMEOUT=1
    sudo update-grub

    /etc/grub.d/00_header следующим образом:

    #if [ \${recordfail} = 1 ]; then
    # set timeout=-1
    #else
    set timeout=${GRUB_TIMEOUT}
    #fi

    После чего запустить grub-update

  2. Убрал графический режим в grub. При нормальной загрузке (не по recordfail) убунтусервер почему-то показывал мне кракозябры. Решить это удалось раскомментированием в /etc/grub/default

    GRUB_TERMINAL=console

    И последующим grub-update.

  3. Запретил автопроверку и ожидание дисков при загрузке (кроме корневого раздела). Поскольку лучше я ручками запущу e2fsck чем будет с моими данными происходить непонятно что с непонятно какими результатами. Для этого, в /etc/fstab добавил к строчкам опции

    nobootwait и режим 0

    ОБЯЗАТЕЛЬНО ПРОПИСАТЬ В /ETC/FSTAB NOOBOTWAIT ФЛАГ ДЛЯ КАЖДОГО ДИСКА

[ ]
 

Отзывы о т.н. "качестве" KVM-переключателей ужасают. Необходимо также учитывать популярность товара - чего больше купили, для того и негативных отзывов будет больше. Пока что я прихожу к выводу, что купить в сомали мальчика-раба, воспитать его честным порядочным цивилизованным человеком и поставить перетыкать шнурки, выйдет дешевле и по деньгам и по количеству потраченных нервов.

UPD. Так получается, что приходится выбирать из Aten и Tripplite. Trendnet исключается по причине уж очень большого количества негативных отзывов. D-Link у меня уже был, чем изрядно расшатал мою и без того хрупкую детскую нервную систему. Склоняюсь больше к Aten, поскольку встречал рекомендации этой марки наряду с Raritan, который в ценовой категории до 5000р. похоже не присутствует. Специалисты из Aten посоветовали, причем весьма оперативно (в течении 1.5 часа) и обоснованно, что только прибавляет плюс к выбору их варианта, для конкретно моей конфигурации (VGA монитор Dell E178FPv, проводная usb клавиатура Microsoft Natural 4000, беспроводная usb мышь Logitech M185) модель Aten CS1734B

(далее…)

sudo dd if=./ubuntu-12.04-alternate-i386.iso|pv|sudo dd of=/dev/sdc

[ ]