koji » 2015.04.29 19:48

чтобы запрос вида [0-9].domain.com (то есть срабатывало только для цифр) переадресовывался на /file.php?p=[0-9]
подскажите что прописать в .htaccess?

Gemorroj » 2015.04.29 19:52

создай 9 хостов и в каждом переадресуй обычным способом)
иначе тебе нужно будет создать хост вида *.domain.com и там вручную определять домен 3 уровня

koji » 2015.04.29 22:15

Так ведь пропускать должно цифры, то есть 34, 543, 1200 Алиас имеется в виду под  хост вида *.domain.com?
не получается у меня RewriteRule задать: если субдомен любое число, то на  /file.php?p=

Gemorroj » 2015.04.30 11:38

https://toster.ru/q/73928
в таком случае тебе нужно изменить настройки домена. сделать так, чтобы все поддомены перенаправляло на основную страницу. а в ней уже по имени хоста определяешь что делать дальше.
Добавлено спустя   1 минуту  5 секунд:
тут rewriterule не обойдешься.

koji » 2015.05.11 19:34

Нашел решение

RewriteCond %{HTTP_HOST} ^([0-9]+)\.domain\.com$ [NC]
RewriteRule (.*) http://domain.com/file.php?p=%1 [QSA,L]

после, можно получать файл по ID с субдомена.
Добавлено спустя   4 минуты  7 секунд:
Заметил что при первом запросе 8181.domain.com запрос обрабатывается дольше, уже на второй раз этот же субдомен открывается быстрее. С чем это связано, как ускорить первый раз?

Gemorroj » 2015.05.11 22:27

ну так это и есть 1 вариант. в виртуалхосте ты же сделал чтобы все поддомены обрабатывалсь и вели в 1 директорию. а как ты их потом обрабатываешь, в .htaccess или php не суть важно. я бы даже на php логику перенес, т.к. просто удобнее и нет завязки на apache (.htaccess).

koji » 2015.05.12 10:16

Gemorroj, подскажи код, не силен в этом.

Gemorroj » 2015.05.12 14:14

Код:

1
span style="color: #0000BB"><?php$_SERVER['HTTP_HOST'] = '6567.domain.com';if (preg_match('/^([0-9]+)\.domain\.com$/', $_SERVER['HTTP_HOST'], $match)) { $subdomain = $match[1]; echo 'success: ' . $subdomain; //include 'success.php';} else { echo 'error'; //include 'error.php';}
koji » 2015.05.12 14:37

Gemorroj
вот ты о чем. да, это великолепное решение. благодарю.