Nikso
сначала исключения. Чтобы они обрабатывались в первую очередь и если правило сработает то флаг [L] останавливает проверку дальнейших правил
RewriteRule ^.+\.php$ $0 [L]
RewriteRule ^.+\.jpg$ $0 [L]
RewriteRule ^trololo1$ $0 [L]
RewriteRule ^trololo2$ $0 [L]
если предыдущие правила не сработали и скрипт дошел до этой строки
то сюда попадают все символы кроме слеша /
RewriteRule ^([^/]+) in.php?s=$1 [L]
учти что в таком случае
http://domain.com/trololo/othershit
othershit потеряется. in.php получит только все что было до первого слеша т.е. trololo в данном случае
если тебе нужно чтобы вся строка после домена шла в get то:
RewriteRule ^.*$ in.php?s=$0 [L]
johndoe2
Стандартный подход: все существующие пути отдавать как есть, все несуществующие - пересылать на ядро
Код:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])/?$ in.php?s=$1 [L,QSA] # дополнительно выкусываем слеш в конце