Динамические субдомены .htaccess - PullRequest
0 голосов
/ 25 июня 2019

Я уже некоторое время тяну за волосы.Мне было интересно, есть ли способ, которым я мог бы создать динамические поддоменов с .htaccess?В данный момент я нахожусь в среде песочницы, но я собираюсь сделать что-то вроде этого:

awebsite.co.uk -> прямо на index.php * .awebsite.co.uk -> прямо наinit.php

До сих пор я умудрился справиться с этим и сделать это, однако я столкнулся с реальной проблемой, когда дело доходит до параметров.

*. adomain.co.uk/ page выдает 404 или 500. Я закинул его, установив пользовательский 404 для init.php

У меня проблема в том, что у меня есть правило, чтобы скрыть .php от URL, поэтому adomain.co.uk / apage отобразит page.php, но когда я попытаюсь выполнить вышеизложенное, это испортится.Может ли кто-нибудь указать мне правильное направление здесь, пожалуйста?У меня есть подстановочный знак A и т. Д. Но я не могу установить ServerAlias ​​с моим хостинг-провайдером.

Большое спасибо

ОБНОВЛЕНИЕ: .htaccess (текущий)

Options -MultiViews
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

ErrorDocument 404 /sandbox/init.php

Hanlding с PHP должен быть таким же простым, как

$splitDomain = explode('.', $_SERVER['SERVER_NAME']);
// TODO: remove if not sandbox
$ReqPage = str_replace('/sandbox/', '', $_SERVER['REQUEST_URI']);
//$ReqPage = str_replace('/', '', $_SERVER['REQUEST_URI']);

1 Ответ

1 голос
/ 26 июня 2019

Поведение по умолчанию - перенаправление в index.php, поэтому вам просто нужно перехватить поддомен не из www.

Как насчет:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+)\.example\.com$   [NC]
RewriteCond %{HTTP_HOST} !^www\.example\.com$  [NC]
RewriteRule ^ http://www.example.com/init.php  [L,R]

Или:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+)\.example\.com$   [NC]
RewriteCond %{HTTP_HOST} !^www\.example\.com$  [NC]
RewriteRule ^ init.php  [L]

Первый перенаправит на init.php (что вы просили), второй назовет init.php без перенаправления (что вы имели в виду).

...