RewriteEngine: поддомен для index.php, как? - PullRequest
1 голос
/ 05 июля 2010

Дни спустя я спросил о перенаправлении динамических каталогов в index.php, и я получил этот код, который отлично работает (это единственный код, который у меня есть в .htaccess):

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule (.*) index.php

Это переводит URL как1004 *http://mydomain.example/dynamicdir/ до http://mydomain.example/index.php

Теперь я хочу перевести субдомены, такие как http://dynamicdir.mydomain.example в http://mydomain.example/index.php?dir=dynamicdir

Из примеров, которые я нашел в Интернете, я попытался добавить эту строку:

RewriteRule ^(.*)\.mydomain\.example index.php?dir=$1

Но это не работает.У меня нет достаточного опыта с переписыванием модов, чтобы сказать, чего не хватает или что не так.Не могли бы вы помочь мне найти способ сохранить динамический перевод каталогов и добавить правило поддомена catch-all?

С уважением!

Ответы [ 2 ]

0 голосов
/ 05 июля 2010

С RewriteRule вы можете проверить только URL-путь .Для имени хоста вам нужно использовать %{HTTP_HOST} в RewriteCond:

RewriteCond %{HTTP_HOST} ^(.+)\.example\.example$
RewriteRule ^ index.php?dir=%1
0 голосов
/ 05 июля 2010

В правилах mod_rewrite используется путь запроса относительно виртуального хоста. Попробуйте использовать разные правила перезаписи для каждого виртуального хоста, но разместите их документы в одном каталоге.

...