Я хочу, чтобы subdomain.example.com указывал на example.com/profile.php?user=subdomain
С "субдоменом", изменяющимся в зависимости от ввода пользователя
Как ты это делаешь? Кроме того, я хочу, чтобы это было тихое перенаправление, чтобы subdomain.example.com отображался в адресной строке, когда пользователь вводит его или нажимает на ссылку.
Смотрите это: http://www.easymodrewrite.com/example-subdomains Вам действительно понадобится
<IfModule mod_rewrite.c>
Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !www.domain.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domain.com [NC]
RewriteRule (.*) domain.com/profile.php?user=%2 [L]
</IfModule>
РЕДАКТИРОВАТЬ: чтобы иметь "тихое" перенаправление, последнее правило должно быть:
RewriteRule (.*) /profile.php?user=%2 [L]
Убедитесь, что у вас есть profile.php
в каталоге, где DocumentRoot
подстановочного знака установлено значение.
Сам я этого не делал, но я бы начал с:
У своего поставщика DNS настройте подстановочный знак.
*.domain.com. IN A 1.2.3.4
Используйте Apache mod_rewrite
чтобы проверить заголовок Host: и изменить URL-адрес в соответствии с вашими спецификациями.
Решение, вероятно, представляет собой смесь всех упомянутых решений.
Сначала вам понадобятся записи DNS, как указано JJ. Тогда вам нужно использовать Директива ServerAlias чтобы все поддомены указывали на один и тот же каталог. И в конце вы можете использовать первые 2 строки кода Ника Бергмана:
$domain = explode(".", $_SERVER['SERVER_NAME']);
$username = htmlentities($domain[0]);
И с этого момента вы можете делать с $ username все, что хотите.