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

G1
На сайте с 06.08.2010
Offline
196
#831

Добрый день, есть сайт где множество поддоменов. А также на основном домене тоже автономный сайт. Можете ли уточнить, как сделать так, чтобы со всех поддоменов и с основного домена тоже перекидывало на версии сайтов с https и без www, использовал конструкцию вида, но там нет учета редиректов с WWW:


RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Чем ее дополнить, чтобы www учесть?

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

Gagarin12, на предыдущей странице /ru/forum/comment/15716260

Abernutio:
Спасибо!
Подскажите, пожалуйста, как сделать переадресацию на http при переходе на субдомен?

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

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

И сверху добавить тот RewriteCond с проверкой HTTPS, но уже без восклицательного знака.

G1
На сайте с 06.08.2010
Offline
196
#833

Мне нужно было добиться чтобы со всех доменов и поддоменов сайта перекидывало на версию без www, на этом форуме мне посоветовали конструкцию:

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTP_HOST} ^(?:www.)?(.+) [NC]
RewriteRule (.*) https://%1%{REQUEST_URI} [R=301,L]

Но почему то она не работала, разобравшись по примерам тут https://www.imbf.org/vebmaster/htaccess-primery-redirektov.html , написал конструкцию:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^/?(.*) https://%1/$1 [L,R=permanent]

Вроде работает, она корректная? Косяков нет?

J
На сайте с 20.02.2014
Offline
120
jkm
#834
Gagarin12:
Вроде работает, она корректная? Косяков нет?

Все нормально. Можно даже не R=permanent, а redirect=permanent - это всё синонимы R=301.

RewriteEngine On

RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^/?(.*) https://%1/$1 [L,redirect=permanent]

^/? обеспечивает одинаковую работу в контексте VirtualHost и .htaccess.

В контексте VirtualHost строка с которой работает RewriteRule всегда начинается с "/", а в .htaccess всё наоборот.

S
На сайте с 30.09.2016
Offline
469
#835
jkm:
^/? обеспечивает одинаковую работу в контексте VirtualHost и .htaccess.
В контексте VirtualHost строка с которой работает RewriteRule всегда начинается с "/", а в .htaccess всё наоборот.

Это типо для идиотов, которые не могут запомнить, что куда писать?

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
S
На сайте с 30.09.2016
Offline
469
#836
Gagarin12:
Но почему то она не работала

И не должна работать, если заход по адресу типа https://www.site.com

G1
На сайте с 06.08.2010
Offline
196
#837

Какая конструкция будет работать для этой задачи?


Мне нужно было добиться чтобы со всех доменов и поддоменов сайта перекидывало на версию без www
Segrwolf
На сайте с 26.01.2010
Offline
110
#838

Друзья, надеюсь на помощь зала, так как сам я как ни копал - не смог понять беду.

Есть настроенный и работающий редирект

<IfModule mod_rewrite.c>

RewriteEngine On

Options +FollowSymLinks

RewriteBase /

RewriteRule ^/?show=(.*)&id=(.*) / [R=301,L]

RewriteRule ^/user/(.*)/ / [R=301,L]

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>

-------

и все отлично, но когда я добавляю туда (рядом с теми двумя RewriteRule) просто еще две аналогичные строки

RewriteRule ^/312/page(.*)/ / [R=301,L]

RewriteRule ^/prav/(.*)/ / [R=301,L]

именно эти две строки не редиректят...

я думал кеш - но дописанные прямые редиректы со ссылки на ссылку - пашут отлично...

перерыл все... подскажите кто может

S
На сайте с 30.09.2016
Offline
469
#839
Segrwolf:
Есть настроенный и работающий редирект

Это редкостная белиберда. в принципе неработоспособная.

Segrwolf:
перерыл все...
Но это же неправда. Судя по написанному, Вы даже основ не прочитали, не то что "всё".
Segrwolf
На сайте с 26.01.2010
Offline
110
#840
Sitealert:
Это редкостная белиберда. в принципе неработоспособная.Но это же неправда. Судя по написанному, Вы даже основ не прочитали, не то что "всё".

в чем смысл вашего сообщения ?

еще раз повторю - первые две строки работают и редиректят.

и правда или не правда - вы хотите чтобы я доказывал это или что я должен сделать в ответ на ваш выпад ?

спасибо за помощь

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