Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Помогите с редиректом
цитата
24/05/08 в 12:19
 _s_[sov]
сабж.
ситуация следующая:
есть урл вида host.com/index.php?p=5
как мне с него сделать редирект через htaccess на host.com ???
и еще, урл может быть вида host.com/index.php?p=5&m=3 то бишь $m это типа подраздела, необходимо чтобы оттуда тоже был редирект на host.com

кароче, если ?p=5 или ?p=5&m=3 то сразу редирект на корень.

конструкция вида:
Код:
RewriteEngine on
RewriteRule ^index.php?p=5(.*)$ index.php [R=301,L]

чета не пашет(тут без подразделов). Помогите плизз, очень нада.
С меня рейтинг icon_smile.gif
цитата
24/05/08 в 13:19
 Corex
Можно вот так:

Код:
RewriteEngine on
RewriteCond %{REQUEST_URI} index.php
RewriteCond %{QUERY_STRING} (p=5|p=5&m=3)
RewriteRule .* /index.php [R=301,L]
цитата
24/05/08 в 15:22
 _s_[sov]
Все вроде работает, но есть одна трабла.
После редиректа урл становится видом
Код:
index.php?p=5&m=3

то есть открывается главная пага, но один хуй в строке запроса остается прежний урл. Как это исправить?
цитата
24/05/08 в 15:42
 Kitschy
Предлогаю строку
Код:
RewriteCond %{QUERY_STRING} (p=5|p=5&m=3)


заменить на:
Код:
RewriteCond %{QUERY_STRING} ^p=(.+)


сразу станет ясно почему не работает icon_smile.gif
ПО сабжу жаль, но у меня не получилось пока никак сделать то что надо. icon_sad.gif
цитата
24/05/08 в 15:49
 _s_[sov]
правило Corex работает как нада, но в строке остается прежний урл. как бы сделать чтоб остался чистый index.php ?
цитата
24/05/08 в 17:44
 Smarty
<?php
if (isset($_GET[p]) && ($_GET[p]==5)){
header("HTTP/1.1 301 Moved Permanently");
header("Location: /index.php");
exit();
}
?>
на пхп редирект
цитата
24/05/08 в 17:45
 _s_[sov]
Мне нада через htaccess
на php я бы уже давно это реализовал.
цитата
24/05/08 в 17:58
 adminZ
через htaccess походу неполучится так редирект сделать...
Обзови этот пхп скрипт
<?php header("location:http://host.com/index.html"); ?>
redirect.php
и напиши в htaccess

RewriteEngine on
RewriteCond %{REQUEST_URI} index.php
RewriteCond %{QUERY_STRING} (p=5|p=5&m=3)
RewriteRule .* /redirect.php [R=301,L]
цитата
24/05/08 в 18:04
 _s_[sov]
А поисковики как отнесутся к двойному редиректу?
цитата
24/05/08 в 20:31
 Smarty

херово. используй редирект на пхп - не парься )
цитата
24/05/08 в 21:36
 Corex
Точно, строка запроса передаётся. Попробуй обмануть апач вот так, должно сработать:

Код:
RewriteEngine on
RewriteCond %{REQUEST_URI} index.php
RewriteCond %{QUERY_STRING} (p=5|p=5&m=3)
RewriteRule .* /index.php? [R=301,L]
цитата
25/05/08 в 08:07
 _s_[sov]
Corex огромный респект тебе и +5
Я под себя еще чуток подправил правило но идею твою понял. Еще раз огромное спасибо!
цитата
25/05/08 в 08:29
 Corex
_s_[sov]:, не за что! icon_biggrin.gif


Эта страница в полной версии