Я должен запустить несколько версий сайта по какой-то логике. скажем, для всех пользователей, зарегистрированных после января 2014 года, я должен отображать более новую версию веб-сайтов, а для более старых пользователей — более старую версию своего веб-сайта.
Веб-серверы: nginx для статического контента и apache для динамического контента.
платформа: php, mysql и linux
Для того, чтобы пользователь зашел на мой сайт, я должен проверить дату регистрации и соответственно перенаправить пользователя на соответствующую версию сайта. но Я хочу предотвратить это дополнительное перенаправление.
Возможно ли то же самое, используя куки, прокси или что-то еще?
Постановка задачи:
Я обновил свой сайт. Я хочу, чтобы мой обновленный сайт был показан только новым зарегистрированным пользователям. Для существующих пользователей старая версия будет продолжена. Корни веб-сайтов различны для обеих версий веб-сайтов.
Конфигурация nginx:
server {
listen 80;
server_name example.com;
location /
{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-FORWARDED_PROTO https;
set $cookie_redirect 0;
if ($http_cookie ~ 'ver=1' ) {
set $cookie_redirect 1;
}
if ($cookie_redirect ~ 1) {
proxy_pass http://127.0.0.1:6060;
}
if ($cookie_redirect ~ 0 ) {
proxy_pass http://127.0.0.1:7070;
}
}
конфигурация apache:
<VirtualHost *:6060>
DocumentRoot /var/www/dir1
ServerName example.com
</VirtualHost>
<VirtualHost *:7070>
DocumentRoot /var/www/dir2
ServerName example.com
</VirtualHost>
Но это будет работать, если куки установлены. Для пользователей, которые приходят в первый раз, и я должен установить куки на основе даты регистрации. так что я смогу показать обновленный сайт новым пользователям. Как то же самое возможно для начинающих пользователей?
Это не было бы большой проблемой, если бы ваш сайт в первую очередь использовал надлежащий шаблонизатор. Php — это бэкэнд, поэтому просто запустите проверку даты регистрации перед рендерингом вашего контента и затем отобразите контент соответствующим образом. это в значительной степени то, что любой сайт делает в любом случае, так или иначе.
Других решений пока нет …