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

S
На сайте с 30.09.2016
Offline
469
#531

marat23, имеется в виду так называемая единая точка входа. Например, все запросы переадресуются на index.php, а в нём прописана процедура выдачи.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
R0
На сайте с 04.05.2011
Offline
56
#532

Здравствуйте. Пожалуйста подскажите как сделать 301 редирект.

Пример:

url.ru/адрес_сайта_.html на url.ru/адрес_сайта.html

url.ru/_адрес_сайта.html на url.ru/адрес_сайта.html

url.ru/_адрес_сайта_.html на url.ru/адрес_сайта.html

Вообщем убрать подчеркивание в начале и в конце, при этом нужно оставить между словами.

J
На сайте с 20.02.2014
Offline
120
jkm
#533

RewriteRule ^_(.+?)_?(\.html)$ /$1$2 [R=301,L]

RewriteRule ^(.+)_(\.html)$ /$1$2 [R=301,L]

Или одним правилом.

RewriteRule ^(?|_(.+?)_?|(.+)_)(\.html)$ /$1$2 [R=301,L]
R0
На сайте с 04.05.2011
Offline
56
#534

Правило RewriteRule ^(?|_(.+?)_?|(.+)_)(\.html)$ /$1$2 [R=301,L] не работает, при установке первых двух срабатывает только вариант url.ru/адрес_сайта_.html на url.ru/адрес_сайта.html

Anibrut
На сайте с 28.05.2014
Offline
74
#535

Здравствуйте.

Подскажите пожалуйста.

Как сделать следующее.

Есть страницы с /ru/ - http://www.sait.com/ru/face/

но языка ru пока нету на сайте потому нужно сделать 301 на страницы http://www.sait.com/ua/face/

так для любой страницы например

с http://www.site.com/ru/page/biorevitalizatsiya-250/ 301 на http://www.site.com/ua/page/biorevitalizatsiya-250/

B
На сайте с 04.09.2010
Offline
80
#536

Нужно перенаправить с страниц c www на без www.

Сделал так.

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.popecon.ru$ [NC]

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

Перенаправляется почему-то только главная страница. Как сделать, чтобы это работало со всеми страницами?

Например, вот так открывается - http://popecon.ru/430-kak-razdelit-dengi-po-spravedlivosti.html

А так, уже нет http://www.popecon.ru/430-kak-razdelit-dengi-po-spravedlivosti.html

Заранее спасибо.

Z0
На сайте с 03.09.2009
Offline
758
#537

Я в этом тоже слабо разбираюсь, но у меня вроде так:


RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*) http://%1/$1 [L,R=301]

Где-то тут на серче тема была, если ничего не путаю..

B
На сайте с 04.09.2010
Offline
80
#538

Попробовал. Только главная перенаправляется. Остальные страницы не открываются, если на них c www перейти.

Александр
На сайте с 17.07.2009
Offline
371
#539

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]

RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]

Сайты на WordPress тут просто летают! (https://vk.cc/atAGUU)
P
На сайте с 10.05.2017
Offline
9
#540

Здравствуйте)

Нужен редирект:

site.ru/article/index.php,

site.ru/article/index.html и тд.

на site.ru/article/

и соответственно с корнем site.ru/index.php то же самое.

Написал правила для mod_rewrite

Это правило ловит все запросы вида site.ru/article/index.php и 301 направляет на site.ru/article/.

Но не отрабатывает на запросе site.ru/index.php

# redirect from php html htm to https://host/article/

RewriteCond %{REQUEST_URI} ^(.*)/index\.(php|html|htm)$
RewriteRule ^(.*)/index\.(php|html|htm)$ $1/ [R=301,L]

Это правило ловит запрос site.ru/index.php, и 301 направляет на site.ru/

Но не отлавливает редиректы с site.ru/article/index.php

# redirect from php html htm to https://host/

RewriteCond %{REQUEST_URI} ^(.*)/index\.(php|html|htm)$
RewriteRule ^index\.(php|html|htm)$ https://site.ru/ [R=301,L]

В .htaccess идут друг за другом.

Условие одно и тоже. Итоговое правило обработки разное.

Не до конца могу понять как сделал то, что работает как надо. И теперь пытаюсь понять как это уместить в одно правило.

Почему первое правило не отрабатывает на запросах к site.ru/index.php?

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