Laravel 5.3: настраиваем редиректы, удаляем дубли / Хостинг / Топики

Laravel 5.3: настраиваем редиректы, удаляем дубли

Очень часто для SEO оптимизации сайта требуется настройка редиректов во избежании всевозможных дублей. Бич которым страдают даже поисковые машины это множественный слэш в конце, к пример google.de//// как же сделать редиректы с множественных слэшей на домен? Или как убрать на сайте ссылку вида haubau.pro/index.php при открытии которой открывается главная страница? На самом деле всё это делается путём настройки сервера. В своём примере я приведу настройку конфигурации сервера под nginx.

Вот мой файл конфигурации:
server {
    merge_slashes off; #убираем множественные слэшы ///// с главной страницы
	server_name сайт.com www.сайт.com;
	charset UTF-8;
	index index.html index.php;
	if ($request_uri ~* "^(.*/)index\.php$") { # делаем редирект с index.php на корень сайта
        	return 301 $1;
	}
	disable_symlinks if_not_owner from=$root_path;
	include /etc/nginx/vhosts-includes/*.conf;
	include /etc/nginx/vhosts-resources/сайт.com/*.conf;
	access_log /var/www/httpd-logs/сайт.com.access.log;
	error_log /var/www/httpd-logs/сайт.com.error.log notice;
	ssi on;
	set $root_path /var/www/аккаунт/data/www/сайт.com/папка_с_приложением/public;
	listen 192.168.0.1:80;
	location / {
		location ~ [^/]\.ph(p\d*|tml)$ {
			try_files /does_not_exists @php;
		}
		try_files $uri $uri/ /index.php?$query_string; # добавляем для работы чпу в Laravel 5.3
		rewrite ^/(.*)/$ /$1 redirect; # делаем редирект на роуты без слэшей
	}
	location @php {
		fastcgi_index index.php;
		fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f [email protected]";
		fastcgi_pass unix:/var/www/php-fpm/аккаунт.sock;
		fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
		try_files $uri =404;
		include fastcgi_params;
	}
	set $root_path /var/www/аккаунт/data/www/сайт.com/папка_с_приложением/public;
	return 301 https://$host:443$request_uri;
	root $root_path;
}
server {
    merge_slashes off; #убираем множественные слэшы ///// с главной страницы
	server_name сайт.com www.сайт.com;
	ssl on;
	ssl_certificate "/var/www/httpd-cert/аккаунт/сайт.com_le1.crtca";
	ssl_certificate_key "/var/www/httpd-cert/аккаунт/сайт.com_le1.key";
	ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
	ssl_prefer_server_ciphers on;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	add_header Strict-Transport-Security "max-age=31536000;";
	charset UTF-8;
	index index.html index.php;
	if ($request_uri ~* "^(.*/)index\.php$") { # делаем редирект с index.php на корень сайта
        	return 301 $1;
	}
	disable_symlinks if_not_owner from=$root_path;
	include /etc/nginx/vhosts-includes/*.conf;
	include /etc/nginx/vhosts-resources/сайт.com/*.conf;
	access_log /var/www/httpd-logs/сайт.com.access.log;
	error_log /var/www/httpd-logs/сайт.com.error.log notice;
	ssi on;
	set $root_path /var/www/аккаунт/data/www/сайт.com/папка_с_приложением/public;
	listen 192.168.0.1:443;

	location / {
		location ~ [^/]\.ph(p\d*|tml)$ {

			try_files /does_not_exists @php;
		}
                rewrite ^/(.*)/$ /$1 permanent; # делаем редирект на роуты без слэшей
		try_files $uri $uri/ /index.php?$query_string; # добавляем для работы чпу в Laravel 5.3
	}
	location @php {
		fastcgi_index index.php;
		fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f [email protected]";
		fastcgi_pass unix:/var/www/php-fpm/аккаунт.sock;
		fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
		#try_files $uri =404;
		include fastcgi_params;
	}
	set $root_path /var/www/аккаунт/data/www/сайт.com/папка_с_приложением/public;

	root $root_path;
}
Что же мы в итоге получаем из этого конфига? Во первых редиректы с domain.tld/index.php на domain.tld. Во вторых редиректы с роутов domain.tld/login/ на domain.tld/login и наконец самый распространённый баг на множестве движков это редирект с domain.tld////// на domain.tld

В конфиге написал что и где прописано
20 сентября 2016, 14:21    SEQUEL.ONE Хостинг 1    1031 +1

Отзывы ()

    Вы должны авторизоваться, чтобы оставлять комментарии.