2014-12-15 2 views
0

У меня есть локальный сайт: http://domain.loc/ и этот сайт имеют субдомен: http://sub.domain.loc/. Как настроить мой сервер Apache || PHP, чтобы вернуть ему глобальную переменную: $_SERVER['REQUEST_URI'] с моим именем поддомена («sub» в этом случае)?Субдомен как часть REQUEST_URI

Примеры:

Если я открою страницу http://domain.loc/ тогда $_SERVER['REQUEST_URI'] будет равна /
Если я открою страницу http://sub.domain.loc/ тогда $_SERVER['REQUEST_URI'] будет равна /sub/

+0

Могу ли я спросить вас, почему вы хотите сделать, чтобы сделать это. '.htaccess' не подходит для вас? – vaso123

+0

Что такое прецедент, и почему бы не взять '$ _SERVER ['HTTP_HOST']. $ _SERVER ['REQUEST_URI'] 'вместо ури? См. [PHP: $ _SERVER - Руководство] (http://php.net/manual/en/reserved.variables.server.php). – DanFromGermany

+0

Недавно я получил новый проект с субдоменом. Контроллер, который должен загрузить основную страницу субдомена, включенную только REQUEST_URI !!! Я не знаю, как ... но он работает на серверах DEV и PRODUCTION. Не удается заставить его работать на моем локальном компьютере. –

ответ

2

Не возможно. REQUEST_URI является то, что приходит ПОСЛЕ имени хоста составляющей URL:

http://example.com/foo/bar/baz 
      ^--- HTTP_HOST 
        ^---- REQUEST_URI 

Вы можете, конечно, иметь свое имя субдомена в компоненте URI, но это то, что вам нужно сделать, и что-то Apache + PHP не будет. Они не собираются переписывать фундаментальные определения URL-адресов только для вас.

+0

Похоже, это возможно ... но только с nginx: http://stackoverflow.com/questions/18869930/how-to-change-request-uri-in-nginx Но я не пробовал. У меня нет nginx на моей локальной машине. –

+0

Это не вопрос nginx/apache, это вопрос php_mod vs php-fpm. Проект должен быть улучшен вместо взлома вашего собственного сервера, чтобы он соответствовал плохим реализованным проектам. – DanFromGermany

+0

Да, я думаю, ты прав. Но я ничего не могу с этим поделать, потому что огромная часть проекта, которая должна быть переписана для этого, является подрепортом и используется в других проектах. Но все равно спасибо за объяснение. –

0

$_SERVER['HTTP_HOST'] возвращает domain с текущим subdomain

$parsedUrl = parse_url($_SERVER['HTTP_HOST']); 

$host = explode('.', $parsedUrl['host']); 

$subdomain = $host[0]; 
echo $subdomain; 
Смежные вопросы