Первый пункт в чек-листе оптимизатора. Аспирин от проседания сайта в показателях индексации и выдачи. Незаменимое средство при миграции с хостинга на хостинг, с домена на домен. Какие способы настройки редиректа надо иметь под рукой? 1. Три способа 301-редиректа c «www» на без «www» с помощью файла .htaccess Первый: <IfModule mod_rewrite.c> Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.yournet\.kz$ [NC] RewriteRule ^(.*)$ http://yournet.kz/$1 [R=301,L] </IfModule> Второй: <IfModule mod_rewrite.c> Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.(.*) [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L] </IfModule> Третий: <IfModule mod_rewrite.c> Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} !^yournet\.kz$ [NC] RewriteRule ^(.*)$ http://yournet.kz/$1 [R=301,L] </IfModule> 2. Два способа 301-редиректа на домен с «www» с помощью файла .htaccess Первый: <IfModule mod_rewrite.c> Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^yournet.kz$ [NC] RewriteRule ^(.*)$ http://www.yournet.kz/$1 [R=301,L] </IfModule> Второй: <IfModule mod_rewrite.c> Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} !^www\.(.*) [NC] RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L] </IfModule> 3. Как настроить переадресацию через Nginx? Используйте код вида server { listen 80; server_name example.org ; return 301 http://www.example.org$request_uri; } server { listen 80; server_name www.example.org ; ... } 4. Как настроить автоматическое добавление / в конце запроса с помощью Nginx? Найдите файл /etc/nginx/bx/site_avaliable/s1.conf Добавьте код server { ... rewrite ^([^.]*[^ /])$ $1/ permanent; ... } После этого перезапустите сервер командами nginx -t и если все нормально service nginx restart 5. Как согласовать редирект с ЧПУ? Это важно! Редирект будет корректно работать только если его команды расположены в файле .htaccess над (перед) командами перенаправления запросов на urlrewrite. Например: <IfModule mod_rewrite.c> Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^([^www].*)$ [NC] RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$ RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L] RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}] </IfModule> ---------------------- Спасибо за внимание! Читайте свежий выпуск «Кладовки программиста» каждый день!
Компания АКРИТ
Как настроить редирект на «Битрикс»?
Первый пункт в чек-листе оптимизатора. Аспирин от проседания сайта в показателях индексации и выдачи. Незаменимое средство при миграции с хостинга на хостинг, с домена на домен. Какие способы настройки редиректа надо иметь под рукой?
1. Три способа 301-редиректа c «www» на без «www» с помощью файла .htaccess
Первый:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.yournet\.kz$ [NC]
RewriteRule ^(.*)$ http://yournet.kz/$1 [R=301,L]
</IfModule>
Второй:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
</IfModule>
Третий:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} !^yournet\.kz$ [NC]
RewriteRule ^(.*)$ http://yournet.kz/$1 [R=301,L]
</IfModule>
2. Два способа 301-редиректа на домен с «www» с помощью файла .htaccess
Первый:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^yournet.kz$ [NC]
RewriteRule ^(.*)$ http://www.yournet.kz/$1 [R=301,L]
</IfModule>
Второй:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
</IfModule>
3. Как настроить переадресацию через Nginx?
Используйте код вида
server {
listen 80;
server_name example.org ;
return 301 http://www.example.org$request_uri;
}
server {
listen 80;
server_name www.example.org ;
...
}
4. Как настроить автоматическое добавление / в конце запроса с помощью Nginx?
Найдите файл /etc/nginx/bx/site_avaliable/s1.conf
Добавьте код
server {
...
rewrite ^([^.]*[^ /])$ $1/ permanent;
...
}
После этого перезапустите сервер командами
nginx -t
и если все нормально
service nginx restart
5. Как согласовать редирект с ЧПУ?
Это важно! Редирект будет корректно работать только если его команды расположены в файле .htaccess над (перед) командами перенаправления запросов на urlrewrite. Например:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^([^www].*)$ [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
</IfModule>
----------------------
Спасибо за внимание!
Читайте свежий выпуск «Кладовки программиста» каждый день!