INFORMLINE 15 Опубликовано: 10 марта 2019 Рассказать Опубликовано: 10 марта 2019 (изменено) Не надо руками творить +100500 редиректов, вот Вам бонус в руки сделал 2 решения для тех и других: Массовый 301 редирект для NGINX с символа "+" на "пробел": rewrite ^/tags/(.*)\+(.*) /tags/$1%20$2 permanent; Массовый 301 редирект для Apach с символа "+" на "пробел": RewriteRule ^/tags/(.*)\+(.*) /tags/$1\ $2 [L,R=301] P.S. Пользуйтесь на здоровье!)) Изменено 10 марта 2019 пользователем INFORMLINE 1 1 Цитата Ссылка на сообщение Поделиться на других сайтах
kamensk 86 Опубликовано: 10 марта 2019 Рассказать Опубликовано: 10 марта 2019 Где ты раньше был? неделю назад твое решение было бы кстати. Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 180 Опубликовано: 10 марта 2019 Рассказать Опубликовано: 10 марта 2019 59 минут назад, INFORMLINE сказал: Не надо руками творить +100500 редиректов, вот Вам бонус в руки сделал 2 решения для тех и других"Массовый 301 редирект для NGINX с символа "+" на "пробел": rewrite ^(.*)/(.*)\+(.*) $1/$2%20$3 permanent;Массовый 301 редирект для Apach с символа "+" на "пробел": RewriteRule ^(.*)/(.*)\+(.*) $1/$2\ $3 [L,R=301] P.S. Пользуйтесь на здоровье!)) Как я понимаю, в данном случае переадресация будет проходить даже если + не в разделе tags. Например, если имя пользователя состоит из двух слов, то там тоже присутствует +. Надо указать, чтобы переадресация была только в разделе tags Цитата Ссылка на сообщение Поделиться на других сайтах
INFORMLINE 15 Опубликовано: 10 марта 2019 Рассказать Опубликовано: 10 марта 2019 Автор 39 минут назад, kamensk сказал: Где ты раньше был? неделю назад твое решение было бы кстати. У меня страницы тегов закрыты от индекса изначально, вот и не парюсь, сегодня Выходной, день добрых дел)) 37 минут назад, radrigo сказал: Как я понимаю, в данном случае переадресация будет проходить даже если + не в разделе tags. Например, если имя пользователя состоит из двух слов, то там тоже присутствует +. Надо указать, чтобы переадресация была только в разделе tags Да, Вы правы, вот решение именно для тегов: Массовый 301 редирект для NGINX с символа "+" на "пробел": rewrite ^/tags/(.*)\+(.*) /tags/$1%20$2 permanent; Массовый 301 редирект для Apach с символа "+" на "пробел": RewriteRule ^/tags/(.*)\+(.*) /tags/$1\ $2 [L,R=301] 2 1 Цитата Ссылка на сообщение Поделиться на других сайтах
alexpsp 30 Опубликовано: 10 марта 2019 Рассказать Опубликовано: 10 марта 2019 Отлично! То, что надо. Но как сделать редирект тегов дополнительных полей? Пользователи мне пока не нужны и я попытался использовать этот вариант rewrite ^(.*)/(.*)\+(.*) $1/$2%20$3 permanent; но редиректит на Not Found The requested URL /home/a/alucky/site.ru/public_html/xfsearch/education-study/Мобильная%20реклама/ was not found on this server. А должен был быть редирект на site.ru/xfsearch/education-study/Мобильная%20реклама/ Цитата Ссылка на сообщение Поделиться на других сайтах
INFORMLINE 15 Опубликовано: 11 марта 2019 Рассказать Опубликовано: 11 марта 2019 Автор 17 часов назад, alexpsp сказал: Отлично! То, что надо. Но как сделать редирект тегов дополнительных полей? Пользователи мне пока не нужны и я попытался использовать этот вариант rewrite ^(.*)/(.*)\+(.*) $1/$2%20$3 permanent; но редиректит на Not Found The requested URL /home/a/alucky/site.ru/public_html/xfsearch/education-study/Мобильная%20реклама/ was not found on this server. А должен был быть редирект на site.ru/xfsearch/education-study/Мобильная%20реклама/ Попробуйте так rewrite ^/xfsearch/education-study/(.*)\+(.*) /xfsearch/education-study/$1%20$2 permanent; Либо для всех полей rewrite ^/xfsearch/(.*)/(.*)\+(.*) /xfsearch/$1/$2%20$3 permanent; Цитата Ссылка на сообщение Поделиться на других сайтах
NlCKRUS 48 Опубликовано: 11 марта 2019 Рассказать Опубликовано: 11 марта 2019 (изменено) не работает в таком варианте /tags/система+зажигания+лада+гранта/ Изменено 11 марта 2019 пользователем NlCKRUS Цитата Ссылка на сообщение Поделиться на других сайтах
INFORMLINE 15 Опубликовано: 11 марта 2019 Рассказать Опубликовано: 11 марта 2019 (изменено) Автор 1 час назад, NlCKRUS сказал: не работает в таком варианте /tags/система+зажигания+лада+гранта/ Для такого варианта нужно увеличить строку, т.е. rewrite ^/tags/(.*)\+(.*) /tags/$1%20$2 permanent; у Вас 4 слова то нужно ^/tags/(.*)\+(.*)\+(.*)\+(.*) /tags/$1%20$2%20$3%20$4 сделать так Изменено 11 марта 2019 пользователем INFORMLINE 1 Цитата Ссылка на сообщение Поделиться на других сайтах
NlCKRUS 48 Опубликовано: 11 марта 2019 Рассказать Опубликовано: 11 марта 2019 36 минут назад, INFORMLINE сказал: Для такого варианта нужно увеличить строку, т.е. rewrite ^/tags/(.*)\+(.*) /tags/$1%20$2 permanent; у Вас 4 слова то нужно ^/tags/(.*)\+(.*)\+(.*)\+(.*) /tags/$1%20$2%20$3%20$4 сделать так добавил RewriteRule ^/tags/(.*)\+(.*)\+(.*)\+(.*) /tags/$1%20$2%20$3%20$4 [L,R=301] ничего не изменилось Цитата Ссылка на сообщение Поделиться на других сайтах
INFORMLINE 15 Опубликовано: 11 марта 2019 Рассказать Опубликовано: 11 марта 2019 (изменено) Автор 1 час назад, NlCKRUS сказал: добавил RewriteRule ^/tags/(.*)\+(.*)\+(.*)\+(.*) /tags/$1%20$2%20$3%20$4 [L,R=301] ничего не изменилось В правиле для апача не надо %20 вместо этого ставьте обычный пробел под экран слеша т.е. "\ " RewriteRule ^/tags/(.*)\+(.*)\+(.*)\+(.*) /tags/$1\ $2\ $3\ $4 [L,R=301] Изменено 11 марта 2019 пользователем INFORMLINE 1 Цитата Ссылка на сообщение Поделиться на других сайтах
NlCKRUS 48 Опубликовано: 11 марта 2019 Рассказать Опубликовано: 11 марта 2019 4 минуты назад, INFORMLINE сказал: В правиле для апача не надо %20 вместо этого ставьте обычный пробел под экран слеша т.е. "\ " RewriteRule ^/tags/(.*)\+(.*)\+(.*)\+(.*) /tags/$1\ $2\ $3\ $4 [L,R=301] заменил, все равно плюсы вместо пробелов Цитата Ссылка на сообщение Поделиться на других сайтах
INFORMLINE 15 Опубликовано: 11 марта 2019 Рассказать Опубликовано: 11 марта 2019 (изменено) Автор 38 минут назад, NlCKRUS сказал: заменил, все равно плюсы вместо пробелов Сейчас проверю на тесте 38 минут назад, NlCKRUS сказал: заменил, все равно плюсы вместо пробелов Да, точно, вот так надо RewriteRule ^tags/(.*)\+(.*)\+(.*)\+(.*) /tags/$1\ $2\ $3\ $4 [L,R=301] - Без слеша перед tags Хотя на другом сайте работало и со слешем без проблем. Изменено 11 марта 2019 пользователем INFORMLINE 1 Цитата Ссылка на сообщение Поделиться на других сайтах
alexpsp 30 Опубликовано: 11 марта 2019 Рассказать Опубликовано: 11 марта 2019 (изменено) 5 часов назад, INFORMLINE сказал: Либо для всех полей rewrite ^/xfsearch/(.*)/(.*)\+(.*) /xfsearch/$1/$2%20$3 permanent; Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator at webmaster@site.ru to inform them of the time this error occurred, and the actions you performed just before this error. More information about this error may be available in the server error log. Apache/2.4.10 (Unix) Server at site.ru Port 80 Мне нужно для всех полей Изменено 11 марта 2019 пользователем alexpsp Цитата Ссылка на сообщение Поделиться на других сайтах
INFORMLINE 15 Опубликовано: 11 марта 2019 Рассказать Опубликовано: 11 марта 2019 (изменено) Автор 1 час назад, alexpsp сказал: Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator at webmaster@site.ru to inform them of the time this error occurred, and the actions you performed just before this error. More information about this error may be available in the server error log. Apache/2.4.10 (Unix) Server at site.ru Port 80 Мне нужно для всех полей Вы куда это прописали? Этот код предназначен для nginx если вы пишите в .htaccess то Вам нужно RewriteRule ^xfsearch/(.*)\+(.*) /xfsearch/$1\ $2 [L,R=301] - для одного +, RewriteRule ^xfsearch/(.*)\+(.*)\+(.*) /xfsearch/$1\ $2\ $3 [L,R=301] - для двух + и тд Изменено 11 марта 2019 пользователем INFORMLINE 1 Цитата Ссылка на сообщение Поделиться на других сайтах
NlCKRUS 48 Опубликовано: 12 марта 2019 Рассказать Опубликовано: 12 марта 2019 14 часов назад, INFORMLINE сказал: Сейчас проверю на тесте Да, точно, вот так надо RewriteRule ^tags/(.*)\+(.*)\+(.*)\+(.*) /tags/$1\ $2\ $3\ $4 [L,R=301] - Без слеша перед tags Хотя на другом сайте работало и со слешем без проблем. что то не выходит тоже Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 310 Опубликовано: 12 марта 2019 Рассказать Опубликовано: 12 марта 2019 1 час назад, NlCKRUS сказал: что то не выходит тоже Может быть вы делаете правки обычным блокнотом? Там кодировка файла нарушается. Используйте Notepad++ Цитата Ссылка на сообщение Поделиться на других сайтах
INFORMLINE 15 Опубликовано: 12 марта 2019 Рассказать Опубликовано: 12 марта 2019 Автор 2 часа назад, NlCKRUS сказал: что то не выходит тоже Скиньте Ваш файл который вы редактируете, сделаю у себя на тесте и перекину Вам. Цитата Ссылка на сообщение Поделиться на других сайтах
NlCKRUS 48 Опубликовано: 12 марта 2019 Рассказать Опубликовано: 12 марта 2019 2 часа назад, INFORMLINE сказал: Скиньте Ваш файл который вы редактируете, сделаю у себя на тесте и перекину Вам. https://drive.google.com/file/d/181V-93wKhmVbKy9157FzVmmxKm1cRVdI/view?usp=sharing Цитата Ссылка на сообщение Поделиться на других сайтах
INFORMLINE 15 Опубликовано: 12 марта 2019 Рассказать Опубликовано: 12 марта 2019 Автор 5 часов назад, NlCKRUS сказал: https://drive.google.com/file/d/181V-93wKhmVbKy9157FzVmmxKm1cRVdI/view?usp=sharing Пропишите RewriteRule ^tags/(.*)\+(.*)\+(.*)\+(.*) /tags/$1\ $2\ $3\ $4 [L,R=301] сразу после -> RewriteEngine On 1 Цитата Ссылка на сообщение Поделиться на других сайтах
NlCKRUS 48 Опубликовано: 12 марта 2019 Рассказать Опубликовано: 12 марта 2019 1 час назад, INFORMLINE сказал: Пропишите RewriteRule ^tags/(.*)\+(.*)\+(.*)\+(.*) /tags/$1\ $2\ $3\ $4 [L,R=301] сразу после -> RewriteEngine On работает не хочу быть навязчивым, но как сделать, чтобы и когда 2 плюса тоже работало? написал так RewriteRule ^tags/(.*)\+(.*)\+(.*) /tags/$1\ $2\ $3\ [L,R=301] RewriteRule ^tags/(.*)\+(.*)\+(.*)\+(.*) /tags/$1\ $2\ $3\ $4 [L,R=301] не вышло, работает только если оставить вашу одну строчку строчку Цитата Ссылка на сообщение Поделиться на других сайтах
INFORMLINE 15 Опубликовано: 13 марта 2019 Рассказать Опубликовано: 13 марта 2019 (изменено) Автор 16 часов назад, NlCKRUS сказал: работает не хочу быть навязчивым, но как сделать, чтобы и когда 2 плюса тоже работало? написал так RewriteRule ^tags/(.*)\+(.*)\+(.*) /tags/$1\ $2\ $3\ [L,R=301] RewriteRule ^tags/(.*)\+(.*)\+(.*)\+(.*) /tags/$1\ $2\ $3\ $4 [L,R=301] не вышло, работает только если оставить вашу одну строчку строчку Для массовой замены нужно использовать RewriteRule ^tags/(.*)\+(.*) /tags/$1\ $2 [R=301] одну лишь строку, она будет редиректить все и tags/1+2 и tags/1+2+3 и tags/1+2+3+4 в общем любые совпадения после tags/ и соответственно возвращать tags/1 2 и tags/1 2 3 и tags/1 2 3 4. И таким образом до бесконечности хоть у вас 100500 плюсов. Изменено 13 марта 2019 пользователем INFORMLINE 1 Цитата Ссылка на сообщение Поделиться на других сайтах
18pohd 0 Опубликовано: 1 октября 2021 Рассказать Опубликовано: 1 октября 2021 Здравствуйте, а как сделать массовый 301 редирект для тегов в версии 14.3, со знака "+" на "%20" ? Цитата Ссылка на сообщение Поделиться на других сайтах
18pohd 0 Опубликовано: 1 октября 2021 Рассказать Опубликовано: 1 октября 2021 24 минуты назад, 18pohd сказал: Здравствуйте, а как сделать массовый 301 редирект для тегов в версии 14.3, со знака "+" на "%20" ? Помог вариант: RewriteRule ^tags/(.*)\+(.*) /tags/$1\ $2 [R=301] :) Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.