Вашей проблемой является в основном regex. Вы пытаетесь соответствовать чему-либо сопровождаемому наклонной чертой, и сопровождаемый чем-либо.
Необходимо попробовать:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)$ $2?key=$1 [R,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^.*/$
RewriteRule ^(.*)$ ?key=$1 [R,L]
Первый блок является Вашей конфигурацией и работает точно так же, как Вам нужно. Второй применяется, только если нет никакой запаздывающей наклонной черты, которая является тем, что Вы хотите.
единственный недостаток состоит в том, что, если кто-либо просит URL, который не имеет его соответствующего page.php после ключа (скажем,/some-key/nonexistant.php), он будет перенаправлен к? key=nonexistant.php (не знают, как назвать это, функцию или ошибку :P).
Страница по умолчанию для запроса /?key=your-key
Вы DefaultIndex
Через чудо brctl . Это устанавливает мосты Linux, и это то, что вам нужно, чтобы делать то, что вы ищете. Последовательность команд будет выглядеть так:
brctl addbr snooper
brctl addif snooper eth0 eth1
ifconfig snooper up
Это превращает ваш портативный компьютер в двухпортовый коммутатор и лучше всего работает, если маршрутизатор WLAN и маршрутизатор WAN подключены непосредственно к вашему портативному компьютеру. Пакеты приходят через один порт, а через другой. Вы можете обнюхивать любой интерфейс.
Для дополнительного удовольствия вы даже можете использовать правила iptables на мосту для фильтрации пакетов!