htaccess переписать index.php в корне и подпапках

Я пытаюсь перенаправить все запросы на ./index.php?site=$1, в то время как я хочу использовать только часть за последней косой чертой.

Итак, я хочу, чтобы www.mydomain.com/firstpage стал www.mydomain.com/index.php?site=firstpage, а www.mydomain.com/subfolder/anotherpage стал www.mydomain.com/subfolder/index.php?site=anotherpage.

Но сейчас www.mydomain.com/subfolder/anotherpage становится www.mydomain.com/index.php?site=subfolder/anotherpage

Вот что у меня есть:

RewriteEngine on
Options +SymlinksIfOwnerMatch
RewriteBase /

RewriteCond %{HTTP_HOST} ^mydomain.com$ [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php?site=$1 [L]

Что я могу сделать, чтобы перенаправить только часть после последней косой черты?
Большое спасибо!


РЕШЕНИЕ:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*/)?([^/]+)$ $1index.php?site=$2 [L]

person basbebe    schedule 03.11.2012    source источник


Ответы (2)


Нашел другое, на мой взгляд, более элегантное решение. При этом количество подпапок не имеет значения.


РЕШЕНИЕ:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*/)?([^/]+)$ $1index.php?site=$2 [L]
person basbebe    schedule 04.11.2012

Наконец-то сам нашел ответ.
Сначала я попытался поместить больше RewriteRules в те же самые строки RewriteCond, что привело к ошибкам сервера. Поэтому я продублировал строки RewriteCond для подкаталогов:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/(.*)$ $1/index.php?site=$2 [L]

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php?site=$1 [L]
person basbebe    schedule 03.11.2012