Arm1.ru

Обрезание слэша в url с 301 редиректом

А собственно почему бы и не повесить этот тут, потом будет легко найти, когда опять понадобится. Зачастую поисковики воспринимают страницы вида:
//arm1.ru/blog/yandex-upal-panika-v-twitter
//arm1.ru/blog/yandex-upal-panika-v-twitter/
  как разные страницы. Получается, что один и тот же контент технически по двум разным страницам, что не есть хорошо. Под катом код для автоматического отрезания символа / в конце с 301 редиректом, чтобы поисковики не дублировали страницы при индексировании.

# убираем QUERY_STRING строку из REQUEST_URI
$uri = $_SERVER['REQUEST_URI'];
if ( false === empty( $_SERVER['QUERY_STRING'] ) )
	$uri = str_replace( '?' . $_SERVER['QUERY_STRING'], '', $uri );
			
# переадресация через 301 редирект при присутствии слэша в конце $uri
if ( substr( $uri, -1 ) == '/' && strlen( $uri ) > 1 ) {
	$queryString = '';
	if ( false === empty( $_SERVER['QUERY_STRING'] ) )
		$queryString = '?' . $_SERVER['QUERY_STRING'];
 
	header( 'Location: ' . substr( $uri, 0, -1 ) . $queryString, true, 301 );
	exit;
}

 

keyboard_return back
local_offer php seo полезное