Как перенаправить из папки на поддомене в основной домен - PullRequest
1 голос
/ 08 ноября 2011

Бит дополнительной информации ...

PHPBB имеет возможность перенаправить вас после входа на страницу, которую вы просматривали ранее, даже если вы используете форму входа извне на своих страницах.Однако они решили, что это должен быть относительный путь в вашем собственном домене.Что не очень хорошо, если у вас есть форум на поддомене вроде forum.mydomain.com ...

Пример из их вики : <input type="hidden" name="redirect" value="./somefile.html" />

ToЧтобы обойти проблему субдомена, я решил добавить указание на перенаправление главной страницы, например <input type="hidden" name="redirect" value="./redirect/frontpagenews.php" />

Так что, если вы используете форму входа на странице http://mysite.com/frontpagenews.php URL перенаправления форумав конечном итоге выглядит как forum.mysite.com/redirect/frontpagenews.php (это работает, форум создает эту ссылку для возврата после входа в систему).Все, что ему нужно, это правило переписывания, чтобы обнаружить это, чтобы оно действительно отправило вас обратно к http://mysite.com/frontpagenews.php

Вопрос ...

Как перейти от forum.mysite.com/redirect/*anything* к mysite.com/*anything*?

Я занимаюсь этим уже некоторое время, и я думаю, что приведенный ниже код должен работать, за исключением того, что это не так.Я поместил его выше других правил переписывания форума в файле htaccess на forum.mysite.com, так как, вероятно, все будет в порядке, если проверено первое правило.

RewriteCond %{HTTP_HOST} ^forum\.mysite\.com/redirect/(.*)$ [NC]
RewriteRule (.*) http://mysite\.com/$1 [QSA,L,NC]

Также пробовал это как условие,но не радость:

RewriteCond %{REQUEST_URI} /redirect/(.*)$ [NC]

1 Ответ

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

HTTP_HOST соответствует только имени хоста, но не пути.Путь должен быть частью RewriteRule.Предполагая, что файл .htaccess, который вы редактируете, находится в корне forum.mysite.com (как в эквиваленте: forum.mysite.com/.htaccess), он должен выглядеть следующим образом:

RewriteCond %{HTTP_HOST} ^forum\.mysite\.com$ [NC]
RewriteRule ^redirect/(.+)$ http://mysite.com/$1 [L,NC,R]

Вам не понадобится QSA в скобках правила, потому что строка запроса будет добавлена ​​в любом случае (если у вас нет ? в цели, например, http://mysite.com/$1?p=1).

Это перенаправитбраузер от forum.mysite.com/redirect/*anything* до mysite.com/*anything*

...