.htaccess редиректы
Для СЕО очень важны редиректы:
Редирект с www на без www
Если не работает, то меняем
на
Убираем index.php из середины URL
Редирект с index.php на главную
Редирект с index.html на главную
Если Ваш сайт сделан на какой-то CMS, то есть вероятность того, что у неё есть функция редиректа с корня на файл index. В этом случае откройте index.php, который находится в корне Вашего движка и пропишите:
Убрать цифры в конце
http://VASHSITE.ru/newpost/788888
Рабочий .htaccess (с-www на без-www, index.php на главную, убрать index из середины URL, убрать слэш)
В .htaccess добавить
В корне создать РНР-файл strtolower.php с кодом:
800
0
Редирект с www на без www
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.your-site\.com\.ua$ [NC]
RewriteRule ^(.*)$ http://your-site.com.ua/$1 [R=301,L]
</IfModule>
Если не работает, то меняем
Options +FollowSymLinks
на
Options +SymLinksIfOwnerMatch
Убираем index.php из середины URL
RewriteRule ^index\.php/(.+)$ /$1 [R=301,L]Редирект с index.php на главную
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP
RewriteRule ^index\.php$ http://site.ru/ [R=301,L]301 редирект страниц со слэшем и без
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]Редирект с index.html на главную
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ http://VASHSITE/ [R=301,L]Если Ваш сайт сделан на какой-то CMS, то есть вероятность того, что у неё есть функция редиректа с корня на файл index. В этом случае откройте index.php, который находится в корне Вашего движка и пропишите:
if($_SERVER['REQUEST_URI'] == "/index.php") {
header("Location: /",TRUE,301);
exit();
}Убрать .html с ссылки
RewriteEngine on
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+)\.html\ HTTP
RewriteRule ^([^.]+)\.html$ http://VASHSITE/$1 [R=301,L]
Убрать ?session=
RewriteEngine On
RewriteCond %{QUERY_STRING} session=
RewriteRule (.*) http://VASHSITE/$1? [R=301,L]Убрать цифры в конце
http://VASHSITE.ru/newpost/788888
RewriteRule (.*)\/([0-9]+)\/$ $1 [R=301,L]Рабочий .htaccess (с-www на без-www, index.php на главную, убрать index из середины URL, убрать слэш)
AddDefaultCharset utf-8
<IfModule mod_rewrite.c>
RewriteEngine on
# Универсальный редирект с домена С www. на домен БEЗ www
# при необходимости - раскомментировать:
#
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteRule ^index\.php/(.+)$ /$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP
RewriteRule ^index\.php$ http://site.com.ua/ [R=301,L]
# prevent httpd from serving dotfiles (.htaccess, .svn, .git, etc.)
RedirectMatch 403 /\..*$
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
</IfModule>
Редирект на нижний регистр (то есть если в URL присутствует хоть одна буква в верхнем, то редирект на URL точно такой же, только в нижнем регистре)
В .htaccess добавить
RewriteEngine on
RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule . strtolower.php [L]В корне создать РНР-файл strtolower.php с кодом:
$protocol = isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0';
header($protocol.' 301 Moved Permanently');
header('Location: '.strtolower($_SERVER['REQUEST_URI']))
Comments