|
|
29.04.2012, 16:33
|
|
Kiano
Зарегистрирован: 2012-04-19
Сообщений: 32
|
Ещё раз здравствуйте.
Не пойму как сделать правильный,с точки зрения оптимизации, 301 редирект с одних страниц,на другую.
Если в админке, в переадресации прописать старый и новый URL,то редирект происходит,но со старых страниц код 302,а не 301.
Если прописать в .htaccess,то 301 ответ получаю,но при редиректе на новый URL,в строке адреса появляется:
http://www.мой сайт.com/?REQUEST_URI=xxxxx/
В .htaccess пробовал разные варианты редиректа:
Redirect 301 /old-page.html http://new-domain.ru/new-page.html
Redirect permanent /old-page.html http://new-domain.ru/new-page.html
RedirectPermanent /old-url.html http://new-site.ru/new-url.html
Результат,как выше написал.Что делать?Как это поправить?
Заранее спасибо!
|
|
|
30.04.2012, 06:04
|
|
Asiat
Аниматика
Зарегистрирован: 2005-12-12
Сообщений: 576
|
В инструменте для переадресаций можно выбрать между 301 и 302 кодом.
Если нельзя, то обновите версию.
|
|
|
30.04.2012, 16:04
|
|
Kiano
Зарегистрирован: 2012-04-19
Сообщений: 32
|
Цитата:В инструменте для переадресаций можно выбрать между 301 и 302 кодом.
Если нельзя, то обновите версию.
В .htaccess никак не настроить?
|
|
|
01.05.2012, 06:26
|
|
Asiat
Аниматика
Зарегистрирован: 2005-12-12
Сообщений: 576
|
Да почему, можете и htaccess помучить
Например, пресловутая переадресация на www/без www работает вполне нормально через mod_rewrite:
RewriteCond %{HTTP_HOST} ^domain.ru
RewriteRule ^(.*)$ http://www.domain.ru/$1 [R=301,L]
Обратите внимание на флаг L (последнее преобразование), возможно, вам для экспериментов его не хватало.
|
|
|
01.05.2012, 18:25
|
|
Kiano
Зарегистрирован: 2012-04-19
Сообщений: 32
|
Переадресация без www/на www уже давно сделано.При чём тут это?
Мне нужно только убрать из url http://www.мой сайт.com/?REQUEST_URI=xxxxx/.
Ответ 301 происходит,но адрес кривой,с точки зрения оптимизации.
|
|
|
02.05.2012, 12:44
|
|
Asiat
Аниматика
Зарегистрирован: 2005-12-12
Сообщений: 576
|
Цитата:Переадресация без www/на www уже давно сделано.При чём тут это?
При том, что если немного подумать, то вы увидите, что там происходит нужный вам 301 редирект.
Тем более, если он уже давно и успешно работает (как выяснилось).
|
|
|
02.05.2012, 16:47
|
|
Kiano
Зарегистрирован: 2012-04-19
Сообщений: 32
|
Цитата:Цитата:Переадресация без www/на www уже давно сделано.При чём тут это?
При том, что если немного подумать, то вы увидите, что там происходит нужный вам 301 редирект.
Тем более, если он уже давно и успешно работает (как выяснилось).
У меня так и прописан редирект без www/на www,как вы написали и он работает.
Я ещё раз повторяю,что при директивах в .htaccess происходит 301 редирект,как при переадресации www/www,так и при переадресации со старых страниц на новые.НО во втором варианте,добавляется окончание к url вида:
/?REQUEST_URI=xxxxx/ - это и является проблемой!
|
|
|
03.05.2012, 15:05
|
|
Asiat
Аниматика
Зарегистрирован: 2005-12-12
Сообщений: 576
|
Kiano, вы меня простите, но... вам шашечки или ехать?
Не подскажу навскидку, почему вариант через Redirect 301 не срабатывает как надо.
Но вот вам вполне рабочий 301 вариант для конкретной страницы через вышеупомянутый модрерайт, щас только проверил на тестовом сайте:
RewriteRule ^tours/catalog/tour_1024.html$ /tours/catalog/ [R=301,L]
Вставлять после RewriteEngine On
|
|
|
03.05.2012, 20:01
|
|
Kiano
Зарегистрирован: 2012-04-19
Сообщений: 32
|
Спасибо!но как прописать для таких url
редирект с www.сайт.com/страница.html на www.сайт.com
редирект с www.сайт.com/страница/ на www.сайт.com
Тут другие пути к страницам...
|
|
|
04.05.2012, 08:08
|
|
Asiat
Аниматика
Зарегистрирован: 2005-12-12
Сообщений: 576
|
Так ничего же не меняется...
RewriteRule ^страница.html$ / [R=301,L]
так тоже должно
RewriteRule ^страница.html$ http://domain.ru [R=301,L]
Если вопрос именно с кириллицей в htaccess, то проверьте еще, чтоб кодировки в файле и на сайте совпадали...
|
|
|
08.05.2012, 22:35
|
|
Kiano
Зарегистрирован: 2012-04-19
Сообщений: 32
|
Неа,не получается.Отдаёт ответ 302,а не 301.
Кстати,когда удалил в админке переадресацию одной страницы,и прописал только вашу команду,то вообще редиректа не было,ответ 200 OK.
Посмотрите пожалуйста,может не так прописал:
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ /netcat/require/e404.php?REQUEST_URI=$1 [L,QSA]
</ifModule>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^мой сайт.com
RewriteRule (.*) http://www.мой сайт.com/$1 [R=301,L]
RewriteEngine On
RewriteRule ^notary.html$ http://www.мой сайт.com [R=301,L]
|