У меня есть веб-приложение php на Apache, которое поддерживает нескольких пользователей, идентифицированных dist_id в строке запроса. Так https://main.com/login?dist_id=21 показывает страницу в другом стиле из https://main.com/login?dist_id=26
Что я хочу сделать, это зарегистрировать доменное имя для каждого пользователя и поддерживать чистоту URL-адресов, чтобы https://brandx.com/login невидимо указывает на https://main.com/login?dist_id=21. После входа мне больше не нужен dist_id, но я хочу сохранить домен пользователя, чтобы https://brandx.com/products?show=1 и т.д. все еще работает.
Возможно ли это и как лучше всего это сделать (mod_write, DNS, в PHP)?
Примечание. У меня уже есть правило перезаписи для добавления index.php, который является точкой входа для всех запросов.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
Я думаю, что я близко с:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?dist_id=26 [QSA,L]
После входа в систему это работает: https://brandx.com/categories но это дает ошибку 404: https://brandx.com/categories?parent_id=12329
Предположительно, все эти «сайты» будут иметь одинаковые структуры URL (минус параметры запроса)? В этом случае, вероятно, было бы проще установить определение для вашего main.com
сайт, а затем добавьте все свои brandx.com
домены как псевдонимы, например
<virtualhost *:80>
ServerName main.com
ServerAlias brandx.com brandy.com brandz.com etc...
</virtualhost>
Затем вы используете mod_rewrite, чтобы проверить HTTP-заголовок «Host:», чтобы увидеть, в какой домен заходят пользователи, и переписать его, если необходимо.
Других решений пока нет …