@sluchetsya

Как вырезать часть адреса в URL используя htaccess?

Приветствую.
Есть страницы вида site.ru/cat1/cat2/art.htm?fb_comment_id=12345&start=2 Причем цифры в отрезке id=12345 всегда разные.
Я не понимаю каким образом с помощью htaccess вырезать часть fb_comment_id=123456789& чтобы получились страницы вида site.ru/cat1/cat2/article.html?start=2
Пробовал так:
RewriteCond %{QUERY_STRING} ^fb_comment_id= [NC]
RewriteRule (.*) $1? [R=301,L]

Всё, что у меня получалось - это полностью убрать все знаки после знака вопроса, а так чтобы вырезать конкретно этот отрезок - нет.
  • Вопрос задан
  • 1431 просмотр
Пригласить эксперта
Ответы на вопрос 1
shambler81
@shambler81 Куратор тега htaccess
если тебе нужно перечислить цифры
RewriteCond %{QUERY_STRING} ^fb_comment_id=[0-9]{1,} [NC]

Если тебе нужно передать часть элементов с конда в рул
Используй скобки чтоб выделить (patern1)(patern2)
а в руле вместо $1 $2 юзай %1 %2 ( баксы останутся для самого рула)

Пример:
#RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
   # Проверяем, содержит ли домен www (в начале URL).
#RewriteRule ^(.*)$ http://%1/$1 [R=301,L]


Если тебе нужно четко по тз
# 301 --- http://site.ru/cat1/cat2/art.htm?fb_comment_id=12345&start=2  => http://site.ru/cat1/cat2/article.html?start=2
RewriteCond %{QUERY_STRING} (^|&)fb_comment_id\=12345($|&)
RewriteCond %{QUERY_STRING} (^|&)start\=2 ($|&)
RewriteRule ^cat1/cat2/art\.htm$ /cat1/cat2/article.html?start=2 [L,R=301]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы