Поддомены с подстановочными знаками для передачи значения субдомена в скрипт - PullRequest
1 голос
/ 03 августа 2011

У меня есть проект, над которым я работаю, когда пользователь пытается получить доступ к сайту x.website.com, он будет показывать результаты для определенного состояния, как бы мне это сделать без ручного создания 52 поддоменов?

Есть ли способ сделать это с помощью htaccess?но это также должно работать, если обращение к state.website.com/search.php будет показывать все результаты для состояния X, поэтому мне нужно, чтобы оно было постоянной переменной.

Или есть лучший способ?Может ли кто-нибудь помочь?

Спасибо

1 Ответ

3 голосов
/ 03 августа 2011

Вам необходимо определить запись DNS с подстановочным знаком как *.example.com. Любой доступ к поддомену, для которого не определена реальная запись DNS, будет отправлен в запись с подстановочными знаками.

Узнайте у своего регистратора домена, разрешено ли вам создавать запись с подстановочными знаками.

В вашем файле .htaccess вы можете отобразить субдомены следующим образом:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+)\.example\.com$ [NC]
# The state is captured as %1
RewriteRule . /index.php?state=%1 [L,QSA]

# More generically - pass the state to any request
# I think this will work without going to a redirect loop
RewriteRule ^(.+)$ $1?state=%1 [L,QSA]

Внутри index.php как только вы получили состояние из строки запроса, вы можете сохранить его в $_SESSION и использовать его в качестве фильтра поиска.

...