Answer the question
In order to leave comments, you need to log in
How does the number of redirects in htaccess affect?
Good day!
Actually, the site changes the structure and page addresses (about 2500).
I glued the URLs in Excel, but there is one problem:
addresses with and without a slash are processed separately, so instead of 2500 redirects, we get 5000 (for addresses with / and without /).
For a redirect, I use a construction so that there are no intersections with similar urls and redirects go nowhere:
RewriteCond %{QUERY_STRING} ^(.*)oldpage$
RewriteRule ^(.*)$ level1/level2/newpage/? [R=301,L]
RewriteCond %{QUERY_STRING} ^(.*)oldpage/$
RewriteRule ^(.*)$ level1/level2/newpage/? [R=301,L]
AddDefaultCharset utf-8
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} ^.*internal\ dummy\ connection.*$ [NC]
RewriteRule .* - [F,L]
RewriteRule ^(manager|assets)/.*$ - [L]
RewriteRule \.(jpg|jpeg|png|gif|ico)$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !.html$
RewriteRule (.+) $1/ [R=301,L]
RewriteCond %{QUERY_STRING} ^(.*)page1/$
RewriteRule ^(.*)$ level1/leve2/page2/? [R=301,L]
Answer the question
In order to leave comments, you need to log in
the robot doesn’t care, the redirect time directly depends on the power of the server, if the server is powerful, then don’t worry, PS will bypass your site for all redirects in proportion to how the hosting server will serve content with and without redirects. From this it follows that thousandths and even tenths of a second of the delay are included in the threshold of validity for high-speed passes for PS
This is a perverse way you came up with to combat slashes))
The problem is solved in three lines of code and it is not necessary to write it separately for each page. Do you use CMS or self-writing?
the first recommendation, write down more correctly get.
RewriteCond %{QUERY_STRING} (^|&)первый_гет($|&)
RewriteCond %{QUERY_STRING} (^|&)еще_гет($|&)
RewriteCond %{QUERY_STRING} (^|&)и так_далее($|&)
############################################################################
#### Cтандартный .htaccess для проектов студии Клондайк, версия 2.3 ####
############################################################################
RewriteEngine On
# Директива включает редиректы.
RewriteBase /
# Без директивы (.*) = /$1 будет /var/wwww/site/web/$1 с директивой = /$1
Options +FollowSymLinks
# Разрешает переход по символическим ссылкам.
############################################################################
#### Перенаправляем протокол https на http ####
############################################################################
#RewriteCond %{HTTPS} On
# Проверяем наличие https в URL.
#RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Перенаправляем протокол на https.
############################################################################
#### Выбор основного зеркала (или с www или без www) ####
############################################################################
# 1. Редирект с www на без www. (раскоментировать директивы пункта 1)
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
# Проверяем, содержит ли домен www (в начале URL).
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
# Перенаправляем URL на домен без www.
####
# 2. Редирект без www на www. (раскоментировать директивы пункта 2)
#RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
# Проверяем, не содержит ли домен www (в начале URL).
#RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
# Перенаправляем URL на домен c www.
############################################################################
#### Убираем повторяющиеся слеши (/) в URL ####
############################################################################
RewriteCond %{THE_REQUEST} //
RewriteRule .* /$0 [R=301,L]
############################################################################
#### Убираем слеши в конце URL для статических файлов (содержит точку) ####
############################################################################
RewriteCond %{REQUEST_URI} !(.*)/$
# Если слеша в конце нет.
RewriteCond %{REQUEST_FILENAME} !-f
# Не является файлом.
RewriteCond %{REQUEST_URI} !\..+$
# В URL нет точки (файл).
RewriteRule ^(.*)$ $1/ [L,R=301]
# Добавляем слеш в конце.
############################################################################
#### Добавляем слеш(/), если его нет, и это не файл. ####
############################################################################
RewriteCond %{REQUEST_URI} !(.*)/$
# Если слеша в конце нет.
RewriteCond %{REQUEST_FILENAME} !-f
# Не является файлом.
RewriteCond %{REQUEST_URI} !\..+$
# В URL нет точки (файл).
RewriteRule ^(.*)$ $1/ [L,R=301]
# Добавляем слеш в конце.
############################################################################
#### Убираем index.php, если он есть в конце URL ####
############################################################################
RewriteCond %{REQUEST_METHOD} =GET
# Выявляем GET запрос в URL (не POST).
RewriteCond %{REQUEST_URI} ^(.*)/index\.php$
# URL cодержит index.php в конце.
RewriteRule ^(.*)$ %1/ [R=301,L]
# Удалить index.php из URL.
############################################################################
#### Компрессия статического контента для гугл спид тест ####
############################################################################
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question