Как сделать редирект (301, 302). Общая тема

Alexander22
На сайте с 05.09.2013
Offline
45
#231

в последней строчке "^" не пропустили?

RewriteRule ^(.*)$ http://*****.world/$1 [R=301,L]

Я пользуюсь таким кодом

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} robots.txt$ [NC]
RewriteRule ^([^/]+) $1 [L]
RewriteCond %{HTTP_HOST} ^(www\.)?oldsite\.ru$
RewriteRule ^(.*)$ http://newsite.ru/$1 [R=301,L]
B
На сайте с 19.04.2014
Offline
29
#232
Alexander22:
в последней строчке "^" не пропустили?
RewriteRule ^(.*)$ http://*****.world/$1 [R=301,L]

Я пользуюсь таким кодом

Попробовал ваш вариант, результат аналогичный домен становиться *****.wrold, вопрос остается открытым. Почему так происходит?

VHS
На сайте с 28.09.2007
Offline
142
VHS
#233

Что-то мне подсказывает, что править надо в другом месте... замените в htaccess world на zadnica

[umka]
На сайте с 25.05.2008
Offline
456
#234

Возможно, браузер закэшировал редирект с опечаткой.

Лог в помощь!
MO
На сайте с 19.05.2006
Offline
140
#235

Господа, нид хелп.

Сделали 301 редирект, который перенаправляет со страницы со слэшем на страницу без

Часть кода .htaccess для данного редиректа:

RewriteCond %{REQUEST_URI} !\?

RewriteCond %{REQUEST_URI} !\&

RewriteCond %{REQUEST_URI} !\=

RewriteCond %{REQUEST_URI} !\.

RewriteCond %{REQUEST_URI} ![^\/]$

RewriteRule ^(.*)\/$ /$1 [R=301,L]

Что в итоге, для всех страниц кроме главной все работает норм, однако для главной сервис bertal.ru

показывает и для site.ru/ и для site.ru 200 код.

Ни у кодера, ни у саппорта хостера (а саппорт там весьма хорош) не получилось решить проблему. Причины:

"К сожалению реализовать данную схему переадресации не получится т.к. запросы domain.com/ и domain.com одинаковы для веб-сервера и в конечном итоге получается циклическая переадресация."

"Я пробовал правила для apache и nginx, оба сервера вели себя одинаково - при запросе domain.com/ происходил редирект на domain.com, но при запросе domain.com происходит редирект на domain.com.

ks@winpc:[~]: curl -I http://192.168.25.25/

HTTP/1.1 301 Moved Permanently

Server: nginx/1.11.3

Date: Wed, 03 Aug 2016 21:28:15 GMT

Content-Type: text/html

Content-Length: 185

Connection: keep-alive

Location: http://192.168.25.25

ks@winpc:[~]: curl -I http://192.168.25.25

HTTP/1.1 301 Moved Permanently

Server: nginx/1.11.3

Date: Wed, 03 Aug 2016 21:28:19 GMT

Content-Type: text/html

Content-Length: 185

Connection: keep-alive

Location: http://192.168.25.25

Конфиг, который использовал в nginx:

if ($request_uri = '/') {

return 301 $scheme://$host;

}

Конфиг для apache:

RewriteCond %{THE_REQUEST} [^\ ]

RewriteRule ^ %2/%3 [R=301,L]

В apache мне не удалось найти способ удаления / т.к. веб-сервер отдавал либо 404 или 301 c циклической переадресацией. Для apache действие конфига несколько иное - он добавляет /, но как видно результат такой же:

ks@winpc:[~]: curl -I http://192.168.25.25:81/

HTTP/1.1 301 Moved Permanently

Date: Wed, 03 Aug 2016 22:13:54 GMT

Server: Apache/2.2.15 (CentOS)

Location: http://192.168.25.25:81/

Connection: close

Content-Type: text/html; charset=iso-8859-1

ks@winpc:[~]: curl -I http://192.168.25.25:81

HTTP/1.1 301 Moved Permanently

Date: Wed, 03 Aug 2016 22:14:03 GMT

Server: Apache/2.2.15 (CentOS)

Location: http://192.168.25.25:81/

Connection: close

Content-Type: text/html; charset=iso-8859-1

Судя по информации найденной в сети, это стандартное поведение веб-серверов, и дня них запросы с / и без / одинаковы.

http://stackoverflow.com/questions/7355305/preventing-trailing-slash-on-domain-name

http://webmasters.stackexchange.com/questions/71943/trailing-slash-on-root-folder-is-it-possible-to-remove-it-without-301"

Кто-то что-то может посоветовать?

Чем больше изучаешь SEO, тем неприятнее ощущать себя трафом =)
L
На сайте с 10.02.2015
Offline
246
#236
jkm:
Тот вариант рабочий нужно только чуть исправить одну строку.

RewriteCond %{REQUEST_FILENAME} !^/blog/.*\.html$


Заменить REQUEST_FILENAME на REQUEST_URI

RewriteCond %{REQUEST_URI} !^/blog/.*\.html$

Проверял на локальном сервере, все работает...

Замена приведет к тому, что не будут обрабатываться адреса вроде:

/blog/bla-bla-bla?query_string=some.html

:)

[umka]
На сайте с 25.05.2008
Offline
456
#237

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

Если вы в браузере написали URL "http://example.com" (без слэша на конце), то вы не указали адрес страницы и браузер использует страницу по умолчанию "/". Т.е. фактически "http://example.com" и "http://example.com/" — это одно и то же и в обоих случаях браузер отправит на сервер одинаковый HTTP-запрос.

GET / HTTP/1.1
Host: example.com

И в данной ситуации нельзя определить на стороне сервера, что именно ввёл пользователь в адресной строке.

E
На сайте с 23.11.2015
Offline
6
#238

Помогите пожалyйста!

Нyжно сделать моментальный редирект на php или htaccess который бyдет передавать реферер! Тестила паблик коды - ничего не полyчается. Реферер не передаётся.

Вот один из них :

<?php

header('Location: http://www.new-website.com/', true, 301);

exit();

?>

I9
На сайте с 14.05.2010
Offline
73
#239

Добрый день, форумчане.

Имею на старом сайте следующего типа юрлы (форум)

ввв.oldsite.ru/forum/viewtopic.php?f=4&t=1020

ввв.oldsite.ru/forum/viewtopic.php?f=4&t=1020&p=2015

ввв.oldsite.ru/forum/viewtopic.php?f=4&t=1020&p=2338

ввв.oldsite.ru/forum/viewtopic.php?f=4&t=1020&start=0&view=print

ввв.oldsite.ru/forum/viewtopic.php?f=4&t=1020&start=10

ввв.oldsite.ru/forum/viewtopic.php?f=4&t=1020&start=10&view=print

ввв.oldsite.ru/forum/viewtopic.php?f=4&t=1020&start=20

ввв.oldsite.ru/forum/viewtopic.php?f=4&t=1020&start=20&view=print

ввв.oldsite.ru/forum/viewtopic.php?f=4&t=1020&start=30

ввв.oldsite.ru/forum/viewtopic.php?f=4&t=1020&start=30&view=print

Это ОДНА из тем форума phpbb3.

Вопрос

Как перенаправить ВСЕ эти юрлы на

hттp://newsite.ru/mytopic.html ?

C 301 редиректом знаком

Однако

Redirect 301 /forum/viewtopic.php?f=4&t=1020 http://newsite.ru/mytopic.html

не срабатывает

хотя вот так

Redirect 301 /test.html http://newsite.ru/mytopic.html

работает

смотрел RedirectMatch (по регулярке)ю

Он правильно переводит юрл, но добавляет в конец параметр ,что не есть хорошо.

http://newsite.ru/mytopic.html?f=4&t=1020&start=30&view=print

т.е. вопроса по сути 2.

1. Почему одиночный редирект не срабатывает

2. Как сделать редирект по маске (для всех)

Samail
На сайте с 10.05.2007
Offline
369
#240

RewriteCond %{THE_REQUEST} " /forum/viewtopic.php\?f=4&t=1020(.*) "

RewriteRule ^ http://newsite.ru/mytopic.html? [R=301,L]
Он правильно переводит юрл, но добавляет в конец параметр ,что не есть хорошо.

В примере как раз на конце вопросительный знак, что-бы не добавлял.

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