2013-06-11 5 views
0

Привет мне нужно перенаправить с помощью HTAccess каждый запрос, который указывает на: http://www.mydomain.com/index.php?option=com_content&view=category&layout=blog&id=293&Itemid=387 к этому URL: http://www.otherdomain.comHtaccess простой редирект не работает

Я стараюсь сделать это:

redirect /index.php?option=com_content&view=category&layout=blog&id=293&Itemid=387 http://www.otherdomain.com 

Но это не работает. Поэтому мне нужна Твоя помощь.

ответ

2

Лучше использовать mod_rewrite для этого материала.

Включение mod_rewrite и .htaccess через httpd.conf, а затем поместить этот код в каталоге .htaccess под DOCUMENT_ROOT:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{QUERY_STRING} ^option=com_content&view=category&layout=blog&id=293&Itemid=387$ 
RewriteRule ^index\.php$ /? [L,R=302,NC] 

После того, как вы убедитесь, что он работает нормально, замените R=302 на R=301. Избегайте использования R=301 (Перманентный переадресация) при тестировании ваших правил mod_rewrite.

+0

Да, я нашел это решение для :) (у вас есть/\ от меня), но есть еще одна проблема, которую параметры GET отправляют в newdomain, и это составляет 404. Итак, следующий вопрос - как очистить параметры GET? – Agrest

+0

Получить параметры не следует из-за '/?' В целевом URL. Пока целевой URL имеет завершающий символ '?', Он вычеркнет все параметры запроса. – anubhava

+0

Да, я не положил/исправлю, спасибо :) – Agrest

0

Я думаю, что кто-то, возможно, потребуется расширить мой ответ, но вы будете смотреть, чтобы сделать что-то вдоль линий: -

RewriteRule ^([^/]+)/? index.php?option=$1 [R=301,L] 

Правила потребуется регулярное выражение, так что сервер может сравнить запрос.

+0

Но я хочу перенаправить, чтобы не переписывать, и только этот конкретный URL-адрес не каждый, который соответствует регулярному выражению – Agrest

+0

Вышеуказанное 301 будет перенаправлено ... Не все может быть сделано с помощью директивы Redirect 301, особенно с регулярным выражением. Мой ответ будет тем, что вам нужно, он просто требует, чтобы специалист в regex обрабатывал каждый параметр запроса для вас в запросе. – zigojacko

+0

Я не знаю, понимаете ли вы мою проблему. Я хочу что-то вроде этого: если я напишу «www.mydomain.php? Parameter = doesnt_matter» в моем браузере, htaccess должен перенаправить меня на «www.mynextdomain.php», но если я напишу адрес «www.mydomain.php? Parameter = something 'htaccess не должен перенаправлять меня. И проблема в том, что htaccess не видит параметры GET в regex - я думаю? – Agrest

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