Редирект 301 с удалением параметров

Weblady
На сайте с 26.07.2011
Offline
143
148
Добрый день! Хотелось бы сделать редирект 301 со страниц вида

/user/3788&par=top_user

на страницы

/user/3788

3788 - может быть любым.
Подскажите, пожалуйста, правило для .htaccess

Такое правило не срабатывает:

RewriteCond %{REQUEST_URI} ^(.*)\&par=

RewriteRule ^(.*)\&par=(.*)$ $1 [R=301,L]


W1
На сайте с 22.01.2021
Offline
303
#1
Сформулируйте, пожалуйста, почётче вопрос. В вашем URL нет параметров.
Мой форум - https://webinfo.guru –Там я всегда на связи
Weblady
На сайте с 26.07.2011
Offline
143
#2
webinfo #:
Сформулируйте, пожалуйста, почётче вопрос. В вашем URL нет параметров.

Чтобы адрес вида  /user/3788&par=top_user вел на адрес вида  /user/3788. 

3788 - может быть любым.

SeVlad
На сайте с 03.11.2008
Offline
1609
#3
webledi #:
Чтобы адрес вида  /user/3788&par=top_user вел на адрес вида  /user/3788. 

Он и так туда "ведёт". Если конечно у страницы каким-то чудом не прописан слаг "3788&par=top_user".

Если же по этим 2м урлам  показываться разные страницы, то надо устранять причину, а не лечить костылями.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
bobolab
На сайте с 08.04.2008
Offline
207
#4

чатгп спрашивали? я в этом не разбираюсь сильно, но он такое говорит...

RewriteEngine On
RewriteCond %{QUERY_STRING} ^par= [NC]
RewriteRule ^user/(\d+)&par= /user/$1 [R=301,L]


Аналог РСЯ https://u.to/j03BHw Видео реклама https://u.to/e03BHw
W1
На сайте с 22.01.2021
Offline
303
#5
webledi #:

Чтобы адрес вида  /user/3788&par=top_user вел на адрес вида  /user/3788. 

3788 - может быть любым.

В этом URL  нет параметров. Это вообще какой-то кривой  URL, его не должно быть. Откуда он взялся?
И да, правило из стартпоста должно срабатывать. Только там слэша не хватает:

RewriteRule ^(.*)\&par=.*$ /$1 [R=301,L]
W1
На сайте с 22.01.2021
Offline
303
#6
bobolab #:
чатгп спрашивали? я в этом не разбираюсь сильно, но он такое говорит...

Ерунду он говорит. Это правило для обработки запросов с QUERY_STRING, а у ТС вообще отсутствует QUERY_STRING, у неё просто какой-то кривой адрес. И даже с учётом этого в ответе вашего чатжопити написана ахинея.

Weblady
На сайте с 26.07.2011
Offline
143
#7
webinfo #:

И да, правило из стартпоста должно срабатывать. Только там слэша не хватает:

RewriteRule ^(.*)\&par=.*$ /$1 [R=301,L]

Со слэшем тоже не срабатывает почему-то.

Этот url из одной страницы почему-то генерируется. В принципе, можно удалить такую генерацию, но эти страницы уже в яндексе, это дубли, хотелось бы их удалить из яндекса.

L
На сайте с 14.12.2008
Offline
126
#8
webledi #:
В принципе, можно удалить такую генерацию, но эти страницы уже в яндексе, это дубли, хотелось бы их удалить из яндекса.

это не сработает на уровне htaccess, ибо сам url неправильно построен

проще сделать на php,  "/user/3788/" - это же шаблонная страница, где id - 3788? 

ну и делаешь в этом шаблоне небольшой скрипт, который проверяет uri на наличие " &par="

если в адресе есть такой фрагмент, то перекидываешь при помощи header с 301 состоянием на обычный "/user/3788/"

ну и каноническим адресом указываешь "/user/3788/"

W1
На сайте с 22.01.2021
Offline
303
#9
webledi #:
Со слэшем тоже не срабатывает почему-то.

Правило надо вставлять до стандартного набора правил WP.

Weblady
На сайте с 26.07.2011
Offline
143
#10

Да это простой самописный сайт, там правил в .htaccess всего два.

Вот так сработало:

RewriteCond %{THE_REQUEST} ^\S+\s(/user/\d+)&
RewriteRule ^ %1? [R=301,L]

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий