Как убрать параметры из адресной строки?

Автор Тема: Как убрать параметры из адресной строки?  (Прочитано 2002 раз)

Оффлайн PHP_USERАвтор темы

  • Бизнес оценка: (0)
  • Ветеран
  • *****
  • СПАСИБО: 575
  • Сообщений: 1103
  • Карма: 155
  • Пол: Мужской
  • Жизнь - это роман, который ты пишешь день за днём
    • Просмотр профиля
    • Создание сайтов в Красноярске

Оффлайн PHP_USERАвтор темы

  • Ветеран
  • *****
  • Доп. информация
    • Бизнес оценка: (0)
    • СПАСИБО: 575
    • Сообщений: 1103
    • Карма: 155
    • Пол: Мужской
    • Жизнь - это роман, который ты пишешь день за днём
      • Просмотр профиля
      • Создание сайтов в Красноярске
1
Не получается в htaccess настроить редирект со страницы с параметрами вида site.com/article.html?sa=X&ved=0ahUKEwi50Q9QEIDjAA
на страницы без параметров вида
site.com/article.html

Добавил вот такой код, но он почему-то не срабатывает:
RewriteCond %{QUERY_STRING} ^sa= [NC]
RewriteRule (.*) $1? [R=301,L]

Естественно, это нужно, чтобы не плодились дубли страниц.


Оффлайн Coder

  • Бизнес оценка: (0)
  • Ветеран
  • *****
  • СПАСИБО: 567
  • Сообщений: 865
  • Карма: 45
  • Пол: Мужской
  • Qui dicit eam omnia
    • Просмотр профиля
    • Coder hol es

Оффлайн Coder

  • Ветеран
  • *****
  • Доп. информация
    • Бизнес оценка: (0)
    • СПАСИБО: 567
    • Сообщений: 865
    • Карма: 45
    • Пол: Мужской
    • Qui dicit eam omnia
      • Просмотр профиля
      • Coder hol es
301 редирект для страницы с GET параметрами _http://coderhs.com/archive/redirect_301#get

301 редирект со страницы со знаком вопроса в URL _http://coderhs.com/snippets/301-question-url

Оффлайн PHP_USERАвтор темы

  • Бизнес оценка: (0)
  • Ветеран
  • *****
  • СПАСИБО: 575
  • Сообщений: 1103
  • Карма: 155
  • Пол: Мужской
  • Жизнь - это роман, который ты пишешь день за днём
    • Просмотр профиля
    • Создание сайтов в Красноярске

Оффлайн PHP_USERАвтор темы

  • Ветеран
  • *****
  • Доп. информация
    • Бизнес оценка: (0)
    • СПАСИБО: 575
    • Сообщений: 1103
    • Карма: 155
    • Пол: Мужской
    • Жизнь - это роман, который ты пишешь день за днём
      • Просмотр профиля
      • Создание сайтов в Красноярске
Coder, спасибо, но там немного другие примеры.

Думаю, у меня первая строка верно написана, а вот вторая, с правилом не работает:
RewriteRule (.*) $1? [R=301,L]

Оффлайн Coder

  • Бизнес оценка: (0)
  • Ветеран
  • *****
  • СПАСИБО: 567
  • Сообщений: 865
  • Карма: 45
  • Пол: Мужской
  • Qui dicit eam omnia
    • Просмотр профиля
    • Coder hol es

Оффлайн Coder

  • Ветеран
  • *****
  • Доп. информация
    • Бизнес оценка: (0)
    • СПАСИБО: 567
    • Сообщений: 865
    • Карма: 45
    • Пол: Мужской
    • Qui dicit eam omnia
      • Просмотр профиля
      • Coder hol es
PHP_USER, примеры одни - все, что с вопросом - нужно адаптировать, конечно.
Кроме того, по дублям можно закрыть в роботс, использовать каноникал.

И 301 можно через PHP, что часто оптимальнее, чем через htaccess

)Пожалуйста

Онлайн alexakap

  • Бизнес оценка: (0)
  • Старожил
  • ****
  • СПАСИБО: 80
  • Сообщений: 268
  • Карма: 14
  • Пол: Мужской
    • Просмотр профиля

Онлайн alexakap

  • Старожил
  • ****
Попробуйте слеш перед $ добавить. У меня такой редирект срабатывал, правда еще без [NC]


Оффлайн PHP_USERАвтор темы

  • Бизнес оценка: (0)
  • Ветеран
  • *****
  • СПАСИБО: 575
  • Сообщений: 1103
  • Карма: 155
  • Пол: Мужской
  • Жизнь - это роман, который ты пишешь день за днём
    • Просмотр профиля
    • Создание сайтов в Красноярске

Оффлайн PHP_USERАвтор темы

  • Ветеран
  • *****
  • Доп. информация
    • Бизнес оценка: (0)
    • СПАСИБО: 575
    • Сообщений: 1103
    • Карма: 155
    • Пол: Мужской
    • Жизнь - это роман, который ты пишешь день за днём
      • Просмотр профиля
      • Создание сайтов в Красноярске
alexakap, вот в таком виде код заработал:
RewriteCond %{QUERY_STRING} ^sa=
RewriteRule (.*) /$1? [R=301,L]

Одна проблемка - перебрасывает на страницу с обычным протоколом http://site.ru/article.html,
а сайт на https
Сайт сделан на вордпрессе.

Онлайн alexakap

  • Бизнес оценка: (0)
  • Старожил
  • ****
  • СПАСИБО: 80
  • Сообщений: 268
  • Карма: 14
  • Пол: Мужской
    • Просмотр профиля

Онлайн alexakap

  • Старожил
  • ****
alexakap, вот в таком виде код заработал:
RewriteCond %{QUERY_STRING} ^sa=
RewriteRule (.*) /$1? [R=301,L]

Одна проблемка - перебрасывает на страницу с обычным протоколом http://site.ru/article.html,
а сайт на https
Сайт сделан на вордпрессе.

А редирект на https есть? Если нет, то его рано или поздно придется настраивать. Можно попробовать заменить вторую строку на
RewriteRule (.*) https://site.ru/$1? [R=301,L]
Но что-то мне подсказывает, что это бред


Оффлайн PHP_USERАвтор темы

  • Бизнес оценка: (0)
  • Ветеран
  • *****
  • СПАСИБО: 575
  • Сообщений: 1103
  • Карма: 155
  • Пол: Мужской
  • Жизнь - это роман, который ты пишешь день за днём
    • Просмотр профиля
    • Создание сайтов в Красноярске

Оффлайн PHP_USERАвтор темы

  • Ветеран
  • *****
  • Доп. информация
    • Бизнес оценка: (0)
    • СПАСИБО: 575
    • Сообщений: 1103
    • Карма: 155
    • Пол: Мужской
    • Жизнь - это роман, который ты пишешь день за днём
      • Просмотр профиля
      • Создание сайтов в Красноярске
В общем, проблема решена, заработала вот такая конструкция:

- сначала редирект всего на https
Цитировать
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
- а потом собственно убираем хвост у адреса страницы
Цитировать
RewriteCond %{QUERY_STRING} ^sa= [NC]
RewriteRule (.*) $1? [R=301,L,QSD]


 

Похожие темы

  Тема / Автор Ответов Последний ответ
1 Ответов
1515 Просмотров
Последний ответ 09-10-2012, 16:50:59
от Sevab
4 Ответов
2379 Просмотров
Последний ответ 14-02-2013, 15:11:15
от VKtraf
1 Ответов
984 Просмотров
Последний ответ 11-04-2014, 07:49:19
от XeNuM
5 Ответов
1396 Просмотров
Последний ответ 08-06-2017, 22:07:22
от Старый
20 Ответов
1706 Просмотров
Последний ответ 02-08-2017, 19:05:36
от vold57