Метка

htaccess

Всего: 19 записей

htaccess: Дубли страниц с несколькими слешами подряд в URL — также после домена

Усовершенствованное решение этого варианта: http://krylov.org.ua/?p=1130
.htaccess

RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$
RewriteRule . %1/%2 [R=301,L]

Работает для http://site.com/dir1///dir2
но проблема остается в адресах типа http://site.com///uri (несколько слешей после домена)
Решение на php:

if(stristr($_SERVER['REQUEST_URI'],'//')){
	$uri=preg_replace('#/{2,}#','/',$_SERVER['REQUEST_URI']);
	header('Location: '.$uri,false,301);
	exit;
}

htaccess: Дубли страниц с несколькими слешами подряд в URL

Усовершенствованный вариант: https://krylov.org.ua/htaccess-dubli-stranits-s-neskolkimi-slesham-2/

Необходимо настроить 301 редирект со всех страниц, где в теле URL больше одного слеша подряд (за исключением http:// и знаков «/» в конце URL) на аналогичные URL с одним знаком «/».
Также необходимо настроить 301 редирект со всех страниц, где в конце URL присутствует знак «/» на аналогичные URL без знака «/».

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]

.htaccess: постраничная переадресация на другой домен

Если DocumentRoot у 2 доменов один и тот же (одна папка) и нужно сделать редирект с одного определенного домена на другой.

RewriteCond %{HTTP_HOST} ^olddomain\.spb\.ru
RewriteRule ^(.*)$ http://newdomain.ru/$1 [R=301,L]

Если сайты в разных папках и проверка на домен не нужна (всегда редирект в не зависимости от домена — первая строка не нужна)