Перейти к публикации

Массовый 301 редирект для тегов в версии 13.2 со знака "+" на "пробел"


Рекомендованные сообщения

Не надо руками творить +100500 редиректов, вот Вам бонус в руки сделал 2 решения для тех и других:

Массовый 301 редирект для NGINX с символа "+" на "пробел":

rewrite ^/tags/(.*)\+(.*) /tags/$1%20$2 permanent;

Массовый 301 редирект для Apach с символа "+" на "пробел":

RewriteRule ^/tags/(.*)\+(.*) /tags/$1\ $2 [L,R=301]

P.S. Пользуйтесь на здоровье!))

Изменено пользователем INFORMLINE
Ссылка на сообщение
Поделиться на других сайтах
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

Ссылка на сообщение
Поделиться на других сайтах
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]

Ссылка на сообщение
Поделиться на других сайтах

Отлично! То, что надо. Но как сделать редирект тегов дополнительных полей?

 

Пользователи мне пока не нужны и я попытался использовать этот вариант 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реклама/

Ссылка на сообщение
Поделиться на других сайтах
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;

Ссылка на сообщение
Поделиться на других сайтах

не работает в таком варианте /tags/система+зажигания+лада+гранта/

Изменено пользователем NlCKRUS
Ссылка на сообщение
Поделиться на других сайтах
1 час назад, NlCKRUS сказал:

не работает в таком варианте /tags/система+зажигания+лада+гранта/

Для такого варианта нужно увеличить строку, т.е. rewrite ^/tags/(.*)\+(.*) /tags/$1%20$2 permanent;  у Вас 4 слова то нужно ^/tags/(.*)\+(.*)\+(.*)\+(.*) /tags/$1%20$2%20$3%20$4 сделать так

Изменено пользователем INFORMLINE
Ссылка на сообщение
Поделиться на других сайтах
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]

ничего не изменилось

Ссылка на сообщение
Поделиться на других сайтах
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]

Изменено пользователем INFORMLINE
Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, INFORMLINE сказал:

В правиле для апача не надо %20 вместо этого ставьте обычный пробел под экран слеша т.е. "\ "

RewriteRule ^/tags/(.*)\+(.*)\+(.*)\+(.*) /tags/$1\ $2\ $3\ $4 [L,R=301]

заменил, все равно плюсы вместо пробелов

Ссылка на сообщение
Поделиться на других сайтах
38 минут назад, NlCKRUS сказал:

заменил, все равно плюсы вместо пробелов

Сейчас проверю на тесте

38 минут назад, NlCKRUS сказал:

заменил, все равно плюсы вместо пробелов

Да, точно, вот так надо RewriteRule ^tags/(.*)\+(.*)\+(.*)\+(.*) /tags/$1\ $2\ $3\ $4 [L,R=301]  - Без слеша перед tags

Хотя на другом сайте работало и со слешем без проблем.

Изменено пользователем INFORMLINE
Ссылка на сообщение
Поделиться на других сайтах
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

Мне нужно для всех полей

Изменено пользователем alexpsp
Ссылка на сообщение
Поделиться на других сайтах
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] - для двух + и тд

Изменено пользователем INFORMLINE
Ссылка на сообщение
Поделиться на других сайтах
14 часов назад, INFORMLINE сказал:

Сейчас проверю на тесте

Да, точно, вот так надо RewriteRule ^tags/(.*)\+(.*)\+(.*)\+(.*) /tags/$1\ $2\ $3\ $4 [L,R=301]  - Без слеша перед tags

Хотя на другом сайте работало и со слешем без проблем.

что то не выходит тоже

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, NlCKRUS сказал:

что то не выходит тоже

Может быть вы делаете правки обычным блокнотом? Там кодировка файла нарушается. Используйте Notepad++

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, NlCKRUS сказал:

что то не выходит тоже

Скиньте Ваш файл который вы редактируете, сделаю у себя на тесте и перекину Вам.

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, INFORMLINE сказал:

Скиньте Ваш файл который вы редактируете, сделаю у себя на тесте и перекину Вам.

https://drive.google.com/file/d/181V-93wKhmVbKy9157FzVmmxKm1cRVdI/view?usp=sharing

Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, NlCKRUS сказал:

Пропишите RewriteRule ^tags/(.*)\+(.*)\+(.*)\+(.*) /tags/$1\ $2\ $3\ $4 [L,R=301] сразу после -> RewriteEngine On

Ссылка на сообщение
Поделиться на других сайтах
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]

 

не вышло, работает только если оставить вашу одну строчку строчку

Ссылка на сообщение
Поделиться на других сайтах
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 плюсов.

Изменено пользователем INFORMLINE
Ссылка на сообщение
Поделиться на других сайтах
  • 2 года спустя...
24 минуты назад, 18pohd сказал:

Здравствуйте, а как сделать массовый 301 редирект для тегов в версии 14.3,  со знака "+" на "%20" ?

Помог вариант: RewriteRule ^tags/(.*)\+(.*) /tags/$1\ $2 [R=301]  

:)

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...