Вы не зашли.
Главная » PHP » Переадресация субдомена с помощью RewriteEngine
#1. koji Off (3)
Участник
2015.04.29 19:07
чтобы запрос вида [0-9].domain.com (то есть срабатывало только для цифр) переадресовывался на /file.php?p=[0-9]
подскажите что прописать в .htaccess?
#2. Gemorroj Off (107)
Administrator
2015.04.29 19:07
создай 9 хостов и в каждом переадресуй обычным способом)
иначе тебе нужно будет создать хост вида *.domain.com и там вручную определять домен 3 уровня
#3. koji Off (3)
Участник
2015.04.29 22:10
Так ведь пропускать должно цифры, то есть 34, 543, 1200 Алиас имеется в виду под  хост вида *.domain.com?
не получается у меня RewriteRule задать: если субдомен любое число, то на  /file.php?p=
#4. Gemorroj Off (107)
Administrator
2015.04.30 11:11
https://toster.ru/q/73928
в таком случае тебе нужно изменить настройки домена. сделать так, чтобы все поддомены перенаправляло на основную страницу. а в ней уже по имени хоста определяешь что делать дальше.
Добавлено спустя   1 минуту  5 секунд:
тут rewriterule не обойдешься.
#5. koji Off (3)
Участник
2015.05.11 19:07
Нашел решение

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

после, можно получать файл по ID с субдомена.
Добавлено спустя   4 минуты  7 секунд:
Заметил что при первом запросе 8181.domain.com запрос обрабатывается дольше, уже на второй раз этот же субдомен открывается быстрее. С чем это связано, как ускорить первый раз?
#6. Gemorroj Off (107)
Administrator
2015.05.11 22:10
ну так это и есть 1 вариант. в виртуалхосте ты же сделал чтобы все поддомены обрабатывалсь и вели в 1 директорию. а как ты их потом обрабатываешь, в .htaccess или php не суть важно. я бы даже на php логику перенес, т.к. просто удобнее и нет завязки на apache (.htaccess).
#7. koji Off (3)
Участник
2015.05.12 10:10
Gemorroj, подскажи код, не силен в этом.
#8. Gemorroj Off (107)
Administrator
2015.05.12 14:02
Код:
<?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';
}
#9. koji Off (3)
Участник
2015.05.12 14:02
Gemorroj
вот ты о чем. да, это великолепное решение. благодарю.
Страниц: 1
Главная
WEB
PunBB Mod v0.6.2
0.013 s