2015-06-24 6 views
1

У меня есть сайт с виртуальными страницами, где любой запрос является переписал на индексную страницу таким образом:.htaccess переписать [виртуальный] субдомен в [виртуальной] папке

RewriteEngine On 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^.*$ ./index.php 

Ie, http://www.example.com/job/edit является переписал в http://www.example.com/index.php/job/edit где Я разбираю его. Это отлично работает.

Теперь мне нужно обработать каждый виртуальный субдомен, чтобы i.e http://user1.example.com/job/edit стал http://www.example.com/index.php/user1/job/edit.

Я добавил в CPanel поддомен подстановки (*.example.com), поэтому каждый поддомен указывает на папку домена (без этого я получил «Сервер не найден» на каждом поддомене).

Я пробовал каждый пример, который я нашел здесь, но я не могу заставить их работать. Если я распечатаю $_SERVER['REQUEST_URI'] на индексной странице, я всегда получаю последнюю часть, но не субдомен (т. Е. /job/edit).

Есть ли способ сделать это?

Заранее спасибо.

Редактировать: У меня уже есть обходной путь для этого. $_SERVER['HTTP_HOST'] var содержит весь домен, то есть user1.example.com. Я могу разобрать его в PHP и извлечь субдомен, но я думаю, что это должен быть более элегантный способ сделать это.

+0

вам нужно к А Wildcart Subdomain правильно? Средства, необходимые для анализа Каждый пользователь как субдомен? Как * .example.com? и заставить этот вызов работать? –

+0

Правильно, мне нужно разобрать каждого пользователя как субдомен. – morgar

+0

У вас есть выделенный хостинг, который имеет доступ к файлу Httpd.conf? –

ответ

0

I've Done Same Like this.

Создайте папку с именем «пользователь»

Создать index.php для обработки Призывов пользовательских функций

Добавить виртуальный хост в httpd.conf тем, что маршрут

* .example .com to the Path/public_html/user

<VirtualHost 0.0.0.0> 
ServerAlias *.example.com 
ServerAdmin [email protected] 
DocumentRoot /home/yourdoma/public_html/user 
ServerName yourdomain.com 
User yourdoma 
Group yourdoma 
BytesLog /usr/local/apache/domlogs/yourdomain.com-bytes_log 
CustomLog /usr/local/apache/domlogs/yourdomain.com combined 
ScriptAlias /cgi-bin/ /home/yourdoma/public_html/joe/cgi-bin/ 
</VirtualHost> 

Теперь все вызовы будут отправляться в папку пользователя.

Добавить файл Htaccess в папке пользователя, чтобы переписать базовый путь

+0

Думаю, я не могу использовать это решение. Весь сайт работает с индексной страницей в корневой папке домена, которая уже обрабатывает каждую страницу в формате http://www.example.com/user1/job/edit (и на любой другой странице). Мне нужно переместить аргумент пользователя в субдомен, но он должен продолжать работать таким же образом. У меня не может быть отдельной папки для обработки пользовательского аргумента. – morgar