Как получить динамический URL через файл HTACCESS в PHP? - PullRequest
0 голосов
/ 01 марта 2011

Мне нужно использовать динамический поддомен в URL. Мое PHP-приложение откроет учетную запись для пользователей.

Мой URL для экрана входа будет

http://example.dev/app/login

После входа в систему пользователь перейдет в следующий раздел

http://example.dev/app/section/account_name=ram

Мой текущий домен - example.dev

Мое требование - внести имя учетной записи в имя домена. Мой URL должен выглядеть следующим образом

http://ram.exmaple.dev/app/section

Точно так же, если имя моей учетной записи - sundar означает, что мой URL должен быть таким

http://sundar.example.dev/app/section

Я знаю, что это возможно с помощью .HTACCESS. Я пытался это, но я не могу получить его правильно

RewriteCond% {HTTP_HOST} ^ ([a-z -] +). Example.dev $ [NC]

RewriteRule (. *) $ / App / section /? Account_name =% 1 [QSA]

Правильно ли это?

Важный момент: В конце htaccess мне нужно вызвать один файл контроллера.

RewriteRule ^ (. *) $ Example_controller.php

1 Ответ

1 голос
/ 01 марта 2011

Я так понимаю, что вы вообще не хотите использовать cagnge в example_controller.php.

PHP обращается к исходному URL с помощью: $ _ SERVER ["REDIRECT_URL"] он будет содержать исходный адрес запроса, а не адрес запроса "последний, но один".

Единственное решение, которое я могу придумать, - это обратный прокси. Вы можете использовать .htaccess для создания запросов прокси (с директивой [P]) к вашему собственному хосту на желаемый URL. Таким образом, PHP увидит этот URL-адрес как REDIRECT_URL , поскольку это оригинальный URL-адрес запроса.

RewriteCond %{HTTP_HOST} ^([a-z-]+).example.dev$ [NC]
RewriteRule (.*)$ http://example.dev/app/section/?account_name=%1[PQSA]

RewriteRule ^(.*)$ example_controller.php

Конечно, вы должны включить mod_proxy. Я не уверен, как работают директивы P и QSA, попробуйте.

...