Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Какие темы в php нужно знать для работы с yii2, symfony и zend framework?

Лучший ответ:
Все главы документации до ООП включительно. Это как бы вам нужно что бы вообще с PHP работать. Далее Паттерны, штуки типа phptherightway и т.д. Так же у вас в голове должно быть понимание того, как это все работает. Каким образом PHP понимает что выполнять, откуда берутся данные в суперглобальных переменных $_GET/$_POST  и т.д.
Что бы нормально владеть вреймворком нужно как минимум нормально владеть технологией, на которую этот фреймворк ориентирован.

Худший ответ:
Полезно еще иметь представление о паттернах проектирования, т.к. во всех MVC-фреймворках они активно используются.
Вопрос: Как узнать, что слушает 80 порт на win2k8?

Лучший ответ:
Так видно? 

netstat -a -b -n


Худший ответ:
Потому что netstat сначала выводит порт, а потом информацию о программе которая его использует.
И у вас для 80 порта вывело:
Не удается получить сведения о владельце
Вопрос: Как реализовать Iterator для собственного List?

Лучший ответ:
Да, вам нужно реализовать класс от Iterator и возвращать экземпляр этого класса в iterator методе. Если не хочется заморачиваться, то можете в Вашем List сразу имплементировать Iterator, соответственно в iterator() возвращать this ну и сразу добавить в нем методы next, hasNext. Таким образом у Вас вся логика будет сокрыта в одном классе, но объект будет одновременно и итерируемым, и итератором, что не очень хорошо в моем представлении.

Худший ответ:
Вот Вам реализация по первой ссылке в гугле:import java.util.Iterator;

public class SOList<Type> implements Iterable<Type> {

    private Type[] arrayList;
    private int currentSize;

    public SOList(Type[] newArray) {
        this.arrayList = newArray;
        this.currentSize = arrayList.length;
    }

    @Override
    public Iterator<Type> iterator() {
        Iterator<Type> it = new Iterator<Type>() {

            private int currentIndex = 0;

            @Override
            public boolean hasNext() {
                return currentIndex < currentSize && arrayList[currentIndex] != null;
            }

            @Override
            public Type next() {
                return arrayList[currentIndex++];
            }

            @Override
            public void remove() {
                throw new UnsupportedOperationException();
            }
        };
        return it;
    }
}Вот еще примерыА вот тут и с объяснениемНу и последнийВсе, вот этот точно последний...
Вопрос: Что такое движок сайта?

Лучший ответ:
Движок
(Материал из Википедии — свободной энциклопедии)

Худший ответ:
Движок - это жаргон. Разберитесь в отличии framework от CMS и Вы сами ответите на свой вопрос.
1. Писать с нуля на голом php - это утопия
2. Готовые CMS - это решение для:
а) мало бюджетных проектов
б) для людей без знания языков программирования
с) если функционал cms полностью покрывает нынешние и возможные будущие потребности проэкта
3. Есть такая штука - framework. Это набор заготовок, классов и логик.  Она позволяет за пару часов сделать простую cms, под собственные нужды без лишних возможностей. Я например пользуюсь связкой yii2 + bootstrap3. В том числе это позволит Вам дописывать необходимый функционал в будущем с минимальными потерями времени. И позволит создавать и очень сложные проекты. Для этого нужно знать PHP, ООП, а так же желательно CSS, Html и немного разбираться в Jquery
Вопрос: Как безболезненно перенести файловый сервер, не потеряв шары?

Лучший ответ:
Была похожая задача. За несколько лет в шарах скопилось МОРЕ мусора. На новом сервере создал новые пустые шары с правами. Через руководство обязал в течение 2 недель переместить (не скопировать, а переместить) на новые шары только нужные файлы. Через 2 недели закрыл старые шары, "остатки" поместил в архив. Объем шар снизился чуть не вдвое - с 2Т до 1,2Т. Про "остатки" раз в 2-3 месяца кто-то вспоминает - достаем ему файл из архива.
Или выйти в ночь - назвать новый сервер как старый, прицепить к нему старый диск, прописать шары. Утром никто разницы не заметит. Права сохранятся.

Худший ответ:
такой шары не будет , надо будет по новой  настраивать , файло с правами доступа то можно скопировать например в тотале , а вот настройка шар надо настраивать
Вопрос: Посоветуйте литературу для изучения компьютера с нуля

Лучший ответ:
Много лет назад начинал с книги А. Левина «Самоучитель работы на компьютере». Эта же книга позволила многим суровым тётям-бухгалтерам в почтенном возрасте начать работать за компьютером.

Один из старейших отечественных самоучителей, постоянно обновляется. В 1-м издании, помню, велось обучение премудростям MS-DOS и Win 3.1. В 10-м издании уже рассматривается Vista.

Худший ответ:
— А какой у тебя уровень? 
 — Ну, я не мастер.., давайте начнём с нуля; нулевой уровень (один мульт.)
_________________________

На мой взгляд, в таком случае подойдёт любая книжонция для начинающих юзеров (из серии «Для чайников» или «Начало работы с компьютером/Windows/Linux) + показать наглядно (движение мышью, ярлыки, окна, текстовый редактор, браузер, гиперссылки). Можно видеоуроки, скажем.

Тяжело что-то советовать, но думается, что подойдёт и учебник по информатике для младших классов. Я бы сходил в магазин и купил пару книжек для начинающих, которые посоветовал бы продавец, лучше с учеником, чтобы он сам выбрал.

В любом случае тут решает наглядный показ, что да как. Если цель только научится печатать в Word и отправлять/принимать почту, то можно и без книжек это провернуть.
Вопрос: Не работает file_get_contents. Что делать?

Лучший ответ:
Почему не работает file_get_contents?

Худший ответ:
Определить защиту и уже тогда обойти.
Скорее всего проверяют некоторые заголовки. file_get_contents() имеет третий параметр $context, с помощью которого можно добавить нужные заголовки.
В браузере у вас работает? Если да - открываете консоль, вкладка сеть,, смотрите что браузер отправляет, создаете контекст с точно такими же заголовками - профит.
В официальной документации есть примеры: https://secure.php.net/manual/en/function.file-get...
Вопрос: Что такое special.habrahabr.ru?

Лучший ответ:
Там же все написано и даже кнопочка есть "Заказать спецпроект"
Вот пример спецпроекта на хабре

Худший ответ:
Это реализуемые командой ТМ специальные проекты. Если у Вас есть потенциальный интерес, можете написать мне на почту ap@tmtm.ru, будем рады помочь вам в решении ваших задач.
Вопрос: Как убрать из обработки один java script на сайте?

Лучший ответ:
Отменить все интервалы можно через перебор
var i = 10e4; while(--i) clearInterval(i);


Худший ответ:
stackoverflow.com/questions/3141064/how-to-stop-all-timeouts-and-intervals-using-javascript
В простых, но частных случаях помогает clearTimeout(1); для Fx и clearTimeout(0); для Chrome.
Вопрос: Какой размер брать для дизайна мобильных приложений?

Лучший ответ:
Зависит от того, в чем вы рисуете. Если это векторный софт (как в моем случае), то гораздо удобнее и правильнее с точки зрения ресайзинга и работы с плагинами рисовать под @1x. Если под рукой только 5-5s айфон то в векторе рисуйте 320*568, а потом резайзите иконки и прочее. В фотошопе соответственно 640*1136. Если 6 айфон или ничего, плюс если вы делаете дизайн, который потом вставите в портфолио, то конечно лучше рисовать изначально под размеры 6 (375*667), а если дело происходит в фотошопе - то под 6+ придется. Только помните, что 6+ - это @3x а значит толщина линий должна быть кратна трём. Так же, как и в андроиде. 
Что касается андроида - два варианта: или вы рисуете под то, что есть под рукой, или более принято в блогах, портфолио и прочей литературе рисовать под 5 нексус. Это значит вектор 360*640, растр 1080*1920.
Настоятельно рекомендую как начинающему дизайнеру сразу рисовать в Adobe Illustrator на PC или в Sketch.app на Mac. Фотошоп - программа для обработки фотографий, а не для работы с вебом и разработкой под разные экраны. Я сама долго переучивалась и поэтому сразу советую начинать правильно, иначе потом себе же усложните жизнь.

Худший ответ:
Я беру 1920 пикселей x 1080 пикселей.
Вопрос: Как удалить определенный Image с Canvas?

Лучший ответ:
Ну вот, к примеру: private void DoWork()
{
    Canvas CnMapField = new Canvas();

    Image[] images = CopyFrom<Image>(CnMapField.Children);
    foreach (Image img in images)
    {
        if (img.Margin.Left == x)
            CnMapField.Children.Remove(img);
    }
}

private T[] CopyFrom<T>(UIElementCollection collection) where T : UIElement
{
    var images = new List<T>(collection.Count);
    images.AddRange(collection.Cast<T>());
    return images.ToArray();
}
То есть ты foreach(ем) бегаешь по копии коллекции, а удаляешь из оригинала.
Хотя в данном случае приведение к Image не обязательно.

Худший ответ:
Вы изменяете коллекцию, по которой итерируетесь - так делать нельзя. Можете воспользоваться методом RemoveAll:CnMapField.Children.RemoveAll(img => img.Margin.Left == x);
Вопрос: Linux и freelance (удаленная работа)?

Лучший ответ:
Если станете действительно квалифицированным специалистом, то свою нишу всегда найдете.

Худший ответ:
Мечты, мечты,
Где ваша сладость?
Где ты, где ты,
Ночная радость?
Исчезнул он,
Веселый сон,
И одинокий
Во тьме глубокой
Я пробужден.
Кругом постели
Немая ночь.
Вмиг охладели,
Вмиг улетели
Толпою прочь
Любви мечтанья.
Еще полна
Душа желанья
И ловит сна
Воспоминанья.
Любовь, любовь,
Внемли моленья:
Пошли мне вновь
Свои виденья,
И поутру,
Вновь упоенный,
Пускай умру
Непробужденный.
Интерес у тебя только к рублю и славе.
Стать действительно квалифицированным специалистом с таким подходом вряд ли суждено. Иди лучше в менеджеры.
Вопрос: Как научить дедушку программировать?

Лучший ответ:
Оставьте дедушку в покое...

Худший ответ:
dedoogl.com - лиц младше 60 на работу не берём ))
Начать стоит с решения на бумаге if else....
Вопрос: Нужен ли swap?

Лучший ответ:
При 3-х гигах оперативки, я бы однозначно сделал swap, хотя бы 1-2 гига.

Худший ответ:
На серверах нужен, на домашнем компе при 4+ гигов памяти — не нужен. Я последние пару-тройку лет не видел на своих компах занятость свопа, отличную от нуля. На большинстве серверов — тоже, но там я оставляю на случай «утечек» памяти, чтобы система сумела хотя бы форкнуть ssh-сессию.
Вопрос: QT Creator как закрыть основное окно из диалогового?

Лучший ответ:
Ну, вообще вы можете вызвать parent()->close() т.к. назначаете родителем своё основное окно.
А вообще лучше не писать велосипед,  а использовать QMessageBox

Худший ответ:
Все немного проще:#include <QApplication>
#include <QMessageBox>
#include <QDebug>

// ...

void MyWidget::someSlot() {
  QMessageBox::StandardButton reply;
  reply = QMessageBox::question(this, "Test", "Quit?",
                                QMessageBox::Yes|QMessageBox::No);
  if (reply == QMessageBox::Yes) {
    qDebug() << "Yes was clicked";
    QApplication::quit();
  } else {
    qDebug() << "Yes was *not* clicked";
  }
}
Вопрос: Что это за выражения *.* *.css *?

Лучший ответ:
это в gulp указывается так путь к исходникам и папкам css файлов, как пример по изображениям: img: 'src/img/**/*.*'

Худший ответ:
Шаблон пути/имени файла?
Вопрос: Как отследить трафик?

Лучший ответ:
стать для всех участников обмена трафиком шлюзом по умолчанию, начать пропускать трафик через свой ПК, там поднять прозрачный прокси или какой либо сниффер. 
По пойманым пакетам беспроводного обмена вы ничего не узнаете (ну точнее их можно расшифровать, но если есть контроль над роутером - то это много проще). 
Если совсем на "пальцах" то:
1. Отключили на роутере DHCP, отключили, если была, изоляцию клиентов.
2. Назначили на сетевой карте два адреса, один из новой сети, другой из той в которой есть ваш вайфай роутер. 
3. Подняли DHCP с выдачей новых адресов, где шлюзом будет ваш пк, добавили маршрут по-умолчанию у себя указывающий на адрес роутера. 
4. Настроили NAT, настроили Proxy в прозрачном режиме и\или снифер. Большая часть ваших действий является незаконной. Думайте о последствиях. 

Худший ответ:
Прошивать роутер под dd-wrt и следить оттуда tcpdump-ом
встать в разрез между wan портом и провайдером
Вопрос: Как доказать авторство сайта?

Лучший ответ:
есть такая штука для этих целей humanstxt.org/
humanstxt.org/humans.txt
www.google.com/humans.txt

Худший ответ:
Я лично не заморачиваюсь этой проблемой, хотя и не ищу «несведущих» — уж очень с ними проблем много.

Технически footer обычно не любят отдавать, хотя у меня сотни тысяч ссылок с них :)
мета наверно самый правильный, но надо не вступить в противоречие с новой политикой гугла с определением автора контента. ( что-то я не вникал, может я тут ошибаюсь )
пасхалки — весело и быстро, но может быть неприятие клиента «что и на моем сайте будет такое ?»
Вопрос: Какой фреймворк для WordPress?

Лучший ответ:
из этих - бутстрап
а вообще вам нужен он, фреймворк? а то у всех уже ассоциация: сверстать = подключить бутстрап

Худший ответ:
Frontity React фреймворк для WP
Вопрос: Как делается подсветка кода в различных IDE?

Лучший ответ:
Для начала можно посмотреть, как это делается в других готовых компонентах 
- www.codeproject.com/Articles/161871/Fast-Colored-T...
- codesharper.codeplex.com
- stackoverflow.com/questions/2973861/open-source-c-...
- stackoverflow.com/questions/1697360/how-to-syntax-...
А если говорить про серьёзные IDE, то в них конечно же делается не regexp'ами, а проводится постоянный разбор текста и построение синтаксического дерева, поскольку это помимо подсветки синтаксиса даёт ещё и "понимаение" кода (какие есть классы, методы и т.д.).
Сейчас на .NET 4.5 можно воспользоваться Roslyn:
sergeyteplyakov.blogspot.ru/2015/03/syntax-highlig...

Худший ответ:
На каком этапе проблема? Часто жалуются на мерцание, но это решается через SendMessage с WM_SETREDRAW.
Вопрос: Удаленное сканирование Canon MF4430?

Лучший ответ:
что можно сделать
Расшарить папку, куда складываются сканы при нажатии кнопки на МФУ.

Худший ответ:
что можно сделать
Расшарить папку, куда складываются сканы при нажатии кнопки на МФУ.
Вопрос: Какие шансы найти работу для PHP Junior'у с хорошими знаниями немецкого языка?

Лучший ответ:
Все зависит от навыков по профилю. Ищите в соответствующем регионе, либо по немецким/сотрудничающими с Германией компаниям.

Худший ответ:
PHP крайне редко есть в энтерпрайзе, поэтому шанс найти у нас ровно такой же, как и начинающему без немецкого.
Немецкий хорош, если ты знаешь java/c/c#, или еще что-то, использующееся в энтерпрайзе, и тогда можно найти проект, который аутсорсит что-то в германию. Например софт для дойчбанка разрабатывается в украине и россии, но там явно не PHP.
PHP настолько простая вещь, что начинающим можно стать за сутки. С фреймворками уже хоть что-то. Но не в энтерпрайзе.
Вопрос: Сократить размер запроса до минимума

Лучший ответ:
$s = 'SELECT';
$f = 'FROM';
$p = 'profile';
$query = "$s * $f `$p`"
держи сокращенный запрос =)

Худший ответ:
Он и так сокращен на минимум.
Вопрос: Русскоязычные ресурсы по функциональному программированию

Лучший ответ:
Журнал «Практика функционального программирования»

Худший ответ:
R и Ruby достаточно функциональны? github.com/vhf/free-programming-books/blob/master/free-programming-books-ru.md
github.com/ilammy/lisp
Вопрос: Объясните как установить шрифты.sfd?

Лучший ответ:
SFD — это Spline Font Database. Его можно открыть в FontForge и сохранить в формате, который будет понятен вашей операционной системе — например, в OpenType (*.otf) или TrueType (*.ttf).
На GitHub просто удобнее хранить/модифицировать шрифты именно в этом формате, так как OTF и TTF — бинарные файлы, а Git более заточен под текстовый контент. SDF — как раз текстовый формат.

Худший ответ:
Шрифт InconsolataCyr в TTF: forum.farmanager.com/download/file.php?id=5259
Вопрос: Может ли статический метод вызывать не статический?

Лучший ответ:
Вы создали экземпляр класса Main и вызвали метод экземпляра через ссылку на объект. В статическом методе могут вызываться методы экземпляра, если в нем создан сам экземпляр.public static void main(String[] args) {
        //создание экземпляра и помещение ссылки на экземпляр в переменную m1
        Main m1 = new Main();
       //теперь через m1 есть доступ к методу nonStaticF1()
        System.out.println(m1.nonStaticF1());
    }
P. S. Пустые скобки при вызове метода без аргументов - обязательны. //nonStaticF1().

Худший ответ:
Нестатические методы - методы экземпляра класса.
Статические методы - методы самого класса.
Статический метод, не имея в распоряжении экземпляра класса, не может вызывать нестатический метод непонятно кого.
Имея экземпляр класса (m1 в примере) можно пользоваться его нестатическими методами откуда угодно.
Вопрос: Как в iptables разрешить доступ по ssh только определенным ip?

Лучший ответ:
Здесь в 7-ом подпункте как раз расписано то что вам нужно

Худший ответ:
ссылки не видно, можно озвучить или повторить 7й пункт?
Вопрос: Востребован ли в России и СНГ фреймворк Торнадо?

Лучший ответ:
Пирумиду не знаю, но ты зря так про Джангу.  Джанга просто офигительная, и чем больше на ней програмишь, тем больше нравится. Почему не гибкая, в чем это заключается? Джанга настолько гибкая, что я даже не знаю как может быть еще лучше. Там нет какой-то зафиксированной структуры и многих соглашений как в других фреймворках. Используешь что хочешь, любую часть можно переопределить.
Под Торнаду насколько я вижу библиотек в сотни раз меньше чем под Джангу. На просторах рунета используется, как я понимаю обычно командами которые пишут например  на той же Джанге, для специфических задач требующих асинхронного подхода. Работы на Торнаде конечно в разы меньше. 
И мне не очень понятна эта любовь а асинхронщине. Асинхронное программирование, ничем не лучше синхронного, это отдельный инструмент для своих задач. В мире веб разработки асинхронщина реально нужна не так уж часто.
Выучить его не очень сложно, т.к. он довольно минималистичный. Но с другой стороны и документации по нему куда меньше чем на Джангу.

Худший ответ:
Единственная (по моему скромному мнению) "негибкость" джанги заключается в том что при смене ORM встроенная админка перестает работать. Заменить шаблонизатор на jinja -  пожалуйста, ORM на sqlalchemy - тоже можно(вопрос Зачем? оставим за скобками).
В то же время у Django есть туча плюсов: Хорошая документация и большое сообщество, в т.ч. русскоязычное.  Вышеупомянутая админка  Офигительнейшая надстройка над unittest для тестирования c фикстурами и прочими плюшками. И много чего еще 
Касательно устарелости (опять же, по моему скромному мнению), устаревает не django, а сама концепция серверных MVC медленно, но верно уходит на второй план, уж очень всем хочется интерактивности на веб-страничках, поэтому разнообразные JS MVC так лихо набрали популярность (кстати, где-где, а в мире JS точно без работы остаться крайне трудно).
Вопрос: Стоит ли восстанавливать раздел на raid1?

Лучший ответ:
Просто подключи один диск и скопируй нужные данные (или образ диска) если нет свободного диска нужного размера. А потом уже запускай восстановление.

Худший ответ:
Сделал образ, далее согласился с восстановлением, в итоге таблица разделов поднялась, вошел в статус "развалившегося" на одном, второй диск мертвый. Чтож, буду закупать новые. Всем спосибо.
Вопрос: Как сделать простейший сервер, обменивающийся с Android приложением одной переменной?

Лучший ответ:

Когда же вы научитесь пользоваться поиском..
Android приложение отправляет запрос на сервер, php скрипт или что-нибудь еще выдает ответ.
script.php:<?php
$var = "Something";
echo $var;
^^^
Вот скрипт, который выводит значение переменной. Осталось загрузить данную страницу( http://site.ru/script.php ) через Android, все это есть в просторах интернета

Худший ответ:
Раз уж пошла такая пляска можно просто положить текстовый документ и его грузить
Вопрос: Почему пытаются уменьшить площадь процессоров, а не увеличить?

Лучший ответ:
тут много причин
1. Меньший технологичный процесс делает меньшие детали внутри процессора. Поэтому структура и возможности процессора растут, а размер уменьшился
2. Меньше потребление энергии. Тут вопрос не столько «жалко энергии», а проблема отвода такого громадного количества тепла с маленьгого кусочка кремния
3. «Напихать в 4 раза больше ядер» не выгодно с экономической точки зрения. Когда процессоры штампуются пачками есть такой показатель как отбраковка. Чем больше ты напихаешь внутрь, тем меньше шансов что в результате на выходе из конвеера будет хотя бы половина рабочих процев.

Это конечно объяснение своими словами, если нужно в деталях и подробно то гугл в помощь

Худший ответ:
Проблема в том, что цена кристала очень быстро растёт с ростом площади ввиду отбраковки. С этим в своё время на зеркалках напоролись. Та и сейчас в принципе то же самое.
Ну и вероятно ещё физические ограничения (выше указанные).
Вопрос: Как вывести статьи за определенный месяц в ruby on rails?

Лучший ответ:
Покажите как уже вы написали код фильтра. А вообще год можно передавать как параметр.

Худший ответ:
Как-нибудь типа такого:@items = Item.where(
updated_at: Time.parse(params[:date])
.beginning_of_month..Time.parse(params[:date]).end_of_month
Вопрос: Часы с интеграцией с телефоном для спорта?

Лучший ответ:
Имею Smartwatch 2. 
Да. Однозначно подходят по всем параметрам. Пара нюансов — лучше брать металл ремешок и там BT 3.0. Зарядки хватает на 3-5 дней с выключением «зуба» на ночь.
С подключенными часами всегда использую режим «вибро» и ориентируюсь только по часам. Пропустить звонок в принцепе не возможно. Можно удобно использовать в качестве джойстика для плеера в смартфоне.
Отвечу на любые вопросы.

Худший ответ:
Sony Smartwatch обладают вибрацией, но к сожалению водопроницаемы.
А вот Smartwatch 2 уже защищены от попадания воды и судя по ролику (http://www.youtube.com/watch?v=ApW7oknVnLU#t=29) имеют вибропривод :)
Вопрос: Среда разработки битрикса. Для чего он нужен и какие у него преимущества?

Лучший ответ:
Аторы Битрикса врядли слышали слова типа ORM, Git и TDD, и расчитан он на кодеров которые их тоже не знают.

1. Никак не помогает, только мешает дурацким API, дурацкой структурой БД, очень медленной скоростью, деревянной системой шаблонизации, тем что страницы хранятся в текстовых файлах и т.п…
2. Ни один нормальный нормальный разарботчик с этой штукой долго работать не будет, работают с ней только кодеры. А разработчики из таких проектов быстро сваливают.
3. ИМХО нет таких случаев, единственный случай если только вы уже неделю не ели, денег нету и это единственная работа в городе.

Код битрикса представляет собой спагетти и голимый копи-паст. Есть например модуль sale.ajax.order не помню точно название, там более 1500 строк кода более 8 уровней вложенности и не одной функции. Логика работы этого модуля также очень-очень странная, я вообще не смог понять как разработчики до этого додумались и почему нельзя было сделать нормальную логику.

Худший ответ:
Не сочтите за рекламу, но можете тебе как вариант подойдет мой велосипед, в нем есть все из перечисленного habrahabr.ru/company/phpshop/blog/114429/
Описание  PHPShop IDE. Специально для верстальщиков есть PHPShop Editor.
Все программы и CMS бесплатны. С помощью IDE написано уже много модулей. Минус, что IDE пока под Windows.
Вопрос: Как htaccess настроить для определенной директории?

Лучший ответ:
В эту особую директорию можно положить свой htaccess файл

Худший ответ:
.htaccess в описанном ниже случае должен быть в корне.
mod_rewrite должно быть включено в PHP
Добавьте код в .htcaccess (путь в RewriteRule можете менять)RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
Если PHP меньше 5.2.6, то:RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]