2014-02-10 4 views
0

я хотел бы переадресовать отHtaccess перенаправить если определенный шаблон запроса найден

www.site1.info?index.php?id=243&L=&tx_kesearch_pi1%5Bsword%5D=YOU 
www.site1.info/search/search/?L=&tx_kesearch_pi1[sword]=YOU 

К

www.site2.org?index.php?id=243&L=&tx_kesearch_pi1%5Bsword%5D=YOU 
www.site2.org/search/search/?L=&tx_kesearch_pi1[sword]=YOU 

ВНИМАНИЕ

я только хочу, чтобы перенаправить только если ...

www.site1.info?index.php?id=243 
www.site1.info/search/search/ 

... и чем перенаправить с текущим запросом (перенос его на site2.org

я безуспешно:

RewriteCond %{HTTP_HOST} ^(www\.)site1\.info/index.php?id=243$ [NC] 
RewriteRule^http://www.site2.org/index.php?id=243%{REQUEST_URI} [NE,R=301,L] 
+0

Пожалуйста, подучить основную терминологию. Это 'www.site1.info/index.php? Id = 243' не является именем хоста, должно быть очевидно. – CBroe

ответ

1

Вы не можете соответствовать REQUEST_URI ИЛИ QUERY_STRING в RewriteCond %{HTTP_HOST}.

Вы можете использовать этот код:

RewriteCond %{HTTP_HOST} ^(www\.)site1\.info$ [NC] 
RewriteCond %{QUERY_STRING} (?:^|&)id=243(?:&|$) [NC] 
RewriteRule ^index\.php$ http://www.site2.org/index.php?id=243%{REQUEST_URI} [NE,R=301,L] 

RewriteCond %{HTTP_HOST} ^(www\.)site1\.info$ [NC] 
RewriteRule ^search/search/?$ http://www.site2.org/index.php?id=243%{REQUEST_URI} [NE,R=301,L] 
+0

не работает. Кроме того, site2 находится в cpanel, установленном как doc-root (typo3) сайта1. Поэтому я переключил условие перезаписи^index \ .php $ на абсолютный URL http://www.site2.org/index\.php$ – Email

+0

Нет, вы НЕ МОЖЕТЕ сделать это, что будет неправильным правилом. Выше код должен быть помещен в DocumentRoot 'site1.info' – anubhava

+0

Возможно, это не так легко (серверный уровень). я должен был бы как-то четко определить Абсолютный url – Email

Смежные вопросы