baloon

baloon
Рейтинг
94
Регистрация
07.04.2009
7tvn54w0:
Один хороший человек на своем блоге помог докапаться до истины, как сделать перенаправление с отсечением параметров без доп. файла:

Options +FollowSymLinks
RewriteEngine On
RewriteEngine /
RewriteCond %{QUERY_STRING} ^option=com_content&view=category&layout=blog&id=1&Itemid=111$ [NC]
RewriteRule ^(.*)$ http://site.ru/uslugi.html? [R=301, L]


Т.е. в результате будет редирект301 любого урла с такими параметрами на http://site.ru/uslugi.html без параметров (? после html ключевой момент для их отброса). L - чтобы произошел моментальный редирект и правила ниже не выполнялись.

Вариант рабочий, проверенный минимум на двух сайтах!

Спасибище! Заработало! Вот так

Options +FollowSymLinks

RewriteEngine On
RewriteCond %{QUERY_STRING} ^option=com_content&view=category&layout=blog&id=1&Itemid=111$
RewriteRule ^index\.php$ http://site.ru/uslugi.html? [R=301,NC]
ниже параметры для ЧПУ

Передавай спасибо тому кто про знак вопроса подсказал :)

baloon добавил 18.03.2011 в 17:49

Silveo:
Всем привет,ребят скажите пожалуйста как проверить сайт на дубли страниц?Сайт у меня на Друпале

Дубли вредны для ПС, поэтому заходи в панели для вебмастеров в ПС и там смотри какие страницы проиндексированы, загружены роботами и ищи дубли.

7tvn54w0:
нет, наверное, не так, все же 2 строки в начало и опции FollowSymLinks под кодировку и L убери из квадратных скобок - эт вроде как последнее правило означает

т.е. вот так в начало

AddDefaultCharset utf-8
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} ^option=com_content&view=category&layout=blog&id=1&Itemid=111$
RewriteRule ^index\.php$ http://site.ru/uslugi.html [R=301,NC]


Сделал так у себя - работает.
А вот как мне надо зацикливается, если указать другой параметр, то все тоже в порядке.
Но мне надо чтобы вобще не было параметров, а он по умолчанию старый подставляет.

Если прописать только вышеприведенные строки то перенаправляет на

http://site.ru/uslugi.html?option=com_content&view=category&layout=blog&id=1&Itemid=111

и выдает 404.

Если прописать с параметрами из .htaccess joomla

AddDefaultCharset utf-8

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{QUERY_STRING} ^option=com_content&view=category&layout=blog&id=1&Itemid=111$
RewriteRule ^index\.php$ http://site.ru/uslugi.html [R=301,NC]

RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

То перенаправляет на

http://site.ru/uslugi.html?option=com_content&view=category&layout=blog&id=1&Itemid=111

и говорит

Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.
7tvn54w0:
попробуй эти две строки перенести в конец файла

Не работает.

Тоже пишет

Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.

Вот .htaccess

AddDefaultCharset utf-8

RewriteEngine On
RewriteCond %{QUERY_STRING} ^option=com_content&view=category&layout=blog&id=1&Itemid=111$
RewriteRule ^index\.php$ http://site.ru/uslugi.html [L,NC,R=301]


##
# @version $Id: htaccess.txt 14401 2010-01-26 14:10:00Z louis $
# @package Joomla
# @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
# @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
# Joomla! is Free Software
##


#####################################################
# READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE
#
# The line just below this section: 'Options +FollowSymLinks' may cause problems
# with some server configurations. It is required for use of mod_rewrite, but may already
# be set by your server administrator in a way that dissallows changing it in
# your .htaccess file. If using it causes your server to error out, comment it out (add # to
# beginning of line), reload your site in your browser and test your sef url's. If they work,
# it has been set by your server administrator and you do not need it set here.
#
#####################################################

## Can be commented out if causes errors, see notes above.
Options +FollowSymLinks

#
# mod_rewrite in use

RewriteEngine On

########## Begin - Rewrite rules to block out some common exploits
## If you experience problems on your site block out the operations listed below
## This attempts to block the most common type of exploit `attempts` to Joomla!
#
## Deny access to extension xml files (uncomment out to activate)
#<Files ~ "\.xml$">
#Order allow,deny
#Deny from all
#Satisfy all
#</Files>
## End of deny access to extension xml files
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]
#
########## End - Rewrite rules to block out some common exploits

# Uncomment following line if your webserver's URL
# is not directly related to physical file paths.
# Update Your Joomla! Directory (just / for root)

# RewriteBase /


########## Begin - Joomla! core SEF Section
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
#
########## End - Joomla! core SEF Section
7tvn54w0:

To baloon
люди говорят надо так писать:
RewriteCond %{QUERY_STRING} ^option=com_...=23&Itemid=111$
RewriteRule index\.php http://site.ru/uslugi.html [L,NC,R=301]

но у меня нечто подобное почему то не работает, попробуй может у тебя получится, расскажешь

перед этим вроде еще такие опции должны быть
RewriteEngine On
RewriteBase /

Ответ браузера

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

Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.

* Эта проблема может возникать при отключении или запрещении принятия кук.

90 страниц.

Не работает на jino

Redirect 301 /old.php http://www.site.ru/new_adress.php

Видимо mod_alias выключен.

С mod_rewrite не получается, не умею.

Как вот такой ардес http://site.ru/index.php?option=com_content&view=article&id=23&Itemid=111

переадресовать на такой

http://site.ru/uslugi.html

А если просто вот так

Redirect 301 /old/old.htm http://www.you.com/new.htm

dustyo_O, написал.

Фома, можно пример, как вы делали?

Может подскажите как правильно прописать ридерект в .htaccess?

Например мне нужно адреса

site.ru/uslugi_id1.html

site.ru/uslugi_id2.html

site.ru/uslugi_id3.html

перенаправить на

site.ru/uslugi1.html

site.ru/uslugi2.html

site.ru/uslugi3.html

Как правильно прописать?

И еще я не знаю - после того, как яндекс проиндексирует страницы с новыми адресами можно будет удалить ридерект, а старые адреса поставить на удаление в я.вебмастере?

RedOK:
ctrl+u , ctrl+f

Этот вариант не подходит. Страниц много.

Всего: 64