Apache мод-переписать редирект - PullRequest
0 голосов
/ 09 ноября 2010

Мне нужно сделать:

если пользователь перейдет на test.com , то сервер должен перенаправить на main.com / check.php , что-то проверить и вернуться обратно на test.com

.htaccess:

RewriteCond %{HTTP_HOST} !^main\.com$ [NC]
RewriteRule ^(.*)$ http://main.com/check.php?url=%{HTTP_HOST}%{REQUEST_URI} [L]

check.php

header("location: http://" . $_GET['url']);

Но это зацикливание.

Есть идеи?

Ответы [ 2 ]

1 голос
/ 09 ноября 2010

Лучший вариант Я думаю, что вы ищете: Использование общего домена для обмена сеансами между несколькими доменами.Если это так, ознакомьтесь с этой темой SO: Совместное использование сеансов между доменами

OK Option Если вам это не нравится, возможно, вы сможете обработать всех своих пользователей'страницы как отдельные сервисы и реализуют единый вход в систему .

Упрямый вариант Если это не то, что вы ищете и хотите придерживаться mod_rewrite,все, что я мог бы предложить, это пытаться больше RewriteCond s, чтобы дисквалифицировать цикл.Например, попробуйте добавить: RewriteCond %{QUERY_STRING} !*some string* [NC, OR] в начало предложения @ nerkn (и, конечно, отправив строку запроса в свой файл check.php.

0 голосов
/ 09 ноября 2010

.htaccess не знает, что скрипт проверил, поэтому я добавил реферер.Но это чек, я думаю, вы должны верить другому механизму.Вера реферира опасна, если есть опасность.

RewriteCond %{HTTP_REFERER} !main\.com [NC, OR]
RewriteCond %{HTTP_HOST} !^main\.com$ [NC]
RewriteRule ^(.*)$ http://main.com/check.php?url=%{HTTP_HOST}%{REQUEST_URI} [L]
...