2010-07-23 5 views
0

Я хочу, чтобы перенаправить m.example.com на example.com/index.php?type=mobile наследуя правила я уже написанные для example.com ...Htaccess mod_rewrite поддомены унаследовавших правила из основного домена

Так, скажем, у меня быть_наст N правили уже определен ищу что-то вроде:

^view/([A-z]+) index.php?view=$1 
^delete/([A-z]+) index.php?delete=$1 
^page/view/([A-z]+)/([0-9]+) index.php?view=$1&page=$2 
^page/delete/([A-z]+)/([0-9]+) index.php?delete=$1&page=$2 

без необходимости переписывать каждый из тех, для m.example.com подобласти, есть способ для m.example.com наследовать те же правила, но с флагом подобласти type=mobile? В принципе, без необходимости добавлять г N больше линий для .htaccess, расположенный в папке m подобласти:

^view/([A-z]+) index.php?view=$1&type=mobile 
^delete/([A-z]+) index.php?delete=$1&type=mobile 
^page/view/([A-z]+)/([0-9]+) index.php?view=$1&page=$2&type=mobile 
^page/delete/([A-z]+)/([0-9]+) index.php?delete=$1&page=$2&type=mobile 
+0

@gumbo - что случилось с изменением с domain.com на example.com - и btw, любая идея решения? – ina

+0

* example.com * вместе с другими доменными именами является зарезервированным доменным именем для целей тестирования и документирования (см. Http://tools.ietf.org/html/rfc2606). * example.com * - это просто нейтральное доменное имя. – Gumbo

+0

Любопытно, что example.com является единственным зарезервированным именем, которое не было (http://test.com) коммерциализировано или персонализировано (http://invalid.com) – ina

ответ

1

Вы могли бы просто проверить HTTP_HOST в вашем PHP скрипт:

$mobile = isset($_SERVER['HTTP_HOST']) && strtolower($_SERVER['HTTP_HOST']) === 'm.example.com'; 
+0

ОК, это аккуратный трюк - указывает HTTP_HOST на правильный домен/субдомен во всех случаях или он как некоторые переменные $ _SERVER, которые иногда могут быть пустыми (например, HTTP_REFERER)? – ina

+0

@ina: * HTTP \ _HOST * - это значение из поля заголовка HTTP * Host *. Он может отсутствовать, если клиент использует HTTP 1.0 (это причина для 'isset ($ _ SERVER ['HTTP_HOST'])). – Gumbo

+0

если это так, любые предложения по резервному копированию для клиентов, которые используют HTTP 1.0? – ina

0

Так попробовать что-то новый:

RewriteCond %{HTTP_HOST} ^([^.]+)\.example.com [NC] 
RewriteRule ^view/([A-z]+) index.php?view=$1&type=%1 

Это что вы ищете?

Смежные вопросы