Переношу старый сайт на новый движок с установкой ssl сертификата, сейчас встал вопрос с редиректом.
Правильный ли сделан редирект?
Redirect 301 /test https://new.ru/catalog/test/
Посмотрите сами:
301 редирект в файле .htaccess. Примеры _http://coderhs.com/archive/redirect_301
И есть в инете сервисы проверки/создания редиректов - посмотрите, полезны бывают.
Цитата: Coder от 13-11-2019, 16:41:42
Посмотрите сами:
301 редирект в файле .htaccess. Примеры _http://coderhs.com/archive/redirect_301
И есть в инете сервисы проверки/создания редиректов - посмотрите, полезны бывают.
Тут немного по другому спрошу.
Я хочу сделать стандартный редирект прямо на https.., можно ли так делать? Либо сделать редирект на http и тут же настроить редирект с httр и https?
Вы хотите одну папку на https перевести?
Цитата: Coder от 13-11-2019, 17:27:50
Вы хотите одну папку на https перевести?
Весь сайт, не понял вопроса!
Цитата: Fox3 от 13-11-2019, 18:01:50
Весь сайт, не понял вопроса!
Ну, тогда проще, полный комплекс:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Protocol} !=https
RewriteCond %{REQUEST_URI} !^/robots.txt
RewriteCond %{REQUEST_URI} !^/sitemap.xml
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ https://your-site.com/ [R=301,L]
RewriteCond %{HTTP_HOST} ^www.your-site\.com$ [NC]
RewriteRule ^(.*)$ https://your-site.com/$1 [R=301,L]
</IfModule>Или так, отдельно:
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]Или :
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://your-site.com/$1 [R=301,L]Варианты есть, в общем.
Цитата: Coder от 13-11-2019, 18:15:41
Ну, тогда проще, полный комплекс:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Protocol} !=https
RewriteCond %{REQUEST_URI} !^/robots.txt
RewriteCond %{REQUEST_URI} !^/sitemap.xml
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ https://your-site.com/ [R=301,L]
RewriteCond %{HTTP_HOST} ^www.your-site\.com$ [NC]
RewriteRule ^(.*)$ https://your-site.com/$1 [R=301,L]
</IfModule>
Да нет, новый сайт на новом хостинге, с новыми(измененными) url и + сразу на https. Тут не могу понят, можно ли напрямую делать редирект на https со старых http, либо нужно простой редирект http и потом делать с http на https
Ну, в общем, теперь я не понимаю - может, кто еще что подскажет...
Можно и напрямую разницы не должно быть, но просадка по трафику на пару месяцев всёравно будет.
Цитата: Fox3 от 13-11-2019, 18:26:31Тут не могу понят, можно ли напрямую делать редирект на https со старых http, либо нужно простой редирект http и потом делать с http на https
Тоже ничего не понял
Вам же кодер выше ответил правильно, пропишите в хтаксесс, и будет все ок:
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
При крупной миграции лучше использовать mod_rewrite с условными правилами для многослойных URL-структур, автоматизировать работу через шаблоны, чтобы избежать дублирования и ошибок. В общем, для мелких задач нормально, а для комплексных надо углубляться.
Цитата: Fox3 от 13-11-2019, 15:06:23Правильный ли сделан редирект?
так как вы никто на современном сервере с apache не делает...
нужно использовать модуль mod_rewrite и прописывать соответствующие директивы в .htaccess
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]