Помогите прописать 301 редирект с определенных страниц на главную

[Удален]
2636

Нужно прописать редирект всех страниц которые будут запрашиваться в таком виде "http://www.site.com/?*" на главную страницу сайта http://www.site.com/, дело в том что у меня открывается главная страница по любому запросу со знаком "?" т.е. site.com/?blabla

P
На сайте с 19.03.2009
Offline
17
#1
HasanSalafit:
Нужно прописать редирект всех страниц которые будут запрашиваться в таком виде "http://www.site.com/?*" на главную страницу сайта http://www.site.com/, дело в том что у меня открывается главная страница по любому запросу со знаком "?" т.е. site.com/?blabla

Можно в какой-нить общий файл, перед выводом написать

	

<?php if($_SERVER['QUERY_STRING']) {
header("HTTP/1.1 301 Moved Permanently");
header("Location: /");
} ?>

сейчас подумаю как можно в htaccess'е реализовать

poyzn добавил 12.08.2010 в 14:52

HasanSalafit:
Нужно прописать редирект всех страниц которые будут запрашиваться в таком виде "http://www.site.com/?*" на главную страницу сайта http://www.site.com/, дело в том что у меня открывается главная страница по любому запросу со знаком "?" т.е. site.com/?blabla

или в htaccess:

RewriteCond %{QUERY_STRING} .+

RewriteRule .+ http://www.site.com/? [R=301,L]
Помогу с вёрсткой, html, css, js, jquery, php, mysql ($) icq 8938933 Быстрый, удобный и недорогой хостинг (http://sweb.ru/p17046) Виза в Великобританию (http://www.englishexpert.ru/velikobritaniya/viza/viza-v-velikobritaniu/)
P
На сайте с 19.03.2009
Offline
17
#2
HasanSalafit:
не работает((

пардон, вот так вот должно:

RewriteCond %{QUERY_STRING} .+

RewriteRule .* http://www.site.com/? [R=301,L]

Только надо учесть что апач будет ВСЕ запросы такого вида переадресовывать на главную

[Удален]
#3

http://www.astana-video.kz/?blabla не работает пройдите по ссылке

P
На сайте с 19.03.2009
Offline
17
#4
HasanSalafit:
http://www.astana-video.kz/?blabla не работает пройдите по ссылке

Надо смотреть в htaccess, возможно не доходит до этого правила

Поставьте его сразу после

RewriteEngine On

RewriteBase /

или покажите свой htaccess

poyzn добавил 12.08.2010 в 15:13

HasanSalafit:
http://www.astana-video.kz/?blabla не работает пройдите по ссылке

Посмотрел Ваш сайт, рекомендую вариант на php,

так как ?option тоже будет редиректится на главную

[Удален]
#5

poyzn, спасибо тебе брат очень благодарен тебе за потраченое время дай Бог тебе здоровья) а я в пустой htaccess вставлял, я первый раз вжизни просто столкнулся с этим файло и не знаю правила, спасибо еще раз

HasanSalafit добавил 12.08.2010 в 15:14

все работает :)

HasanSalafit добавил 12.08.2010 в 15:16

хорошо сделаю пхп спасибо)

HasanSalafit добавил 12.08.2010 в 15:25

На пхп выходит вот

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/astanavi/public_html/index.php:6) in /home/astanavi/public_html/libraries/joomla/session/session.php on line 423

Warning: Cannot modify header information - headers already sent by (output started at /home/astanavi/public_html/index.php:6) in /home/astanavi/public_html/libraries/joomla/session/session.php on line 426

HasanSalafit добавил 12.08.2010 в 15:25

но редиректит

P
На сайте с 19.03.2009
Offline
17
#6

Ошибка "headers already sent" говорит о том что вывод уже начался, в после любого вывода хедеры уже невозможно передать. Ищите где вывод начинается.

Выводом может считаться любой символ и даже пробел.

И кстати, когда найдете лучше такой код поставьте:

<?php 
if(sizeof($_GET) && implode('', $_GET) == '') {
header('HTTP/1.1 301 Moved Permanently');
header('Location: /');
}
?>

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий