Преобразовывать при заходе на урл со слешем в конце в урл без слеша

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем inkubus, 23 дек 2010.

Статус темы:
Закрыта.
  1. inkubus

    inkubus

    Регистр.:
    27 мар 2010
    Сообщения:
    180
    Симпатии:
    56
    Подскажите, плиз, может кто сталкивался.
    Нужно чтобы при заходе серфера по урлу http://domen.com/key-key/ его редиректило на страницу http://domen.com/key-key
     
  2. inkubus

    inkubus

    Регистр.:
    27 мар 2010
    Сообщения:
    180
    Симпатии:
    56
    Немножко поясню: key-key - это не папка, а текстовый файл, закешированная страница, и их около тысячи, ключи разные, естественно и названия файлов. То есть при наборе адреса со слешем в конце серчер не попадает на приготовленную для него страницу, так как готовилась она без слэша... Возможно Ваш способ сработает, но тогда нужно какое-то регулярное выражение для редиректа, подскажите пожалуйста какое.
    урл вида http://domen.com/index.php?id=tree-grass-sky
    http://domen.com/index.php?id=tree-grass-sky/ - по таким ссылкам начали ходить из-за ошибочного спама, на самом деле правильный адрес к странице выглядит как http://domen.com/index.php?id=tree-grass-sky
    требуется чтобы серчер, который обнаружив неправильную ссылку вида http://domen.com/index.php?id=tree-grass-sky/ кликнул на неё, но попал в итоге на http://domen.com/index.php?id=tree-grass-sky
    Добавлено через 1 минуту
    у нас с адресами на самом деле всё в порядке, это к нам по неправильным адресам пытаются попасть ))
    и ещё уточню -- как будет выглядеть код в случае с доменом domen.co.cc
     
  3. lamer2

    lamer2 Постоялец

    Регистр.:
    1 апр 2008
    Сообщения:
    73
    Симпатии:
    30
    PHP:
    RewriteEngine on
    RewriteBase 
    /
    RewriteRule ^(.*)/$ http://domen.com/$1 [R=301,L]

    #Прописываем в корневой .htaccess и все пути http://domen.com/здесь-что-угодно/ меняются на http://domen.com/здесь-что-угодно
    PS: может возникнуть проблема если на сайте есть урлы в которых в конце всё-же должен быть слеш.
     
  4. bat

    bat

    Регистр.:
    24 сен 2009
    Сообщения:
    984
    Симпатии:
    425
    а где в вашем коде замена куска ссылки? он в обычных условиях должен был бы выглядеть как index.php?id=tree-grass-*
    вот как "*" заменить на понятный для апача символ?
     
    inkubus нравится это.
  5. lamer2

    lamer2 Постоялец

    Регистр.:
    1 апр 2008
    Сообщения:
    73
    Симпатии:
    30
    azybat, не понял вашего вопроса, но исходя из первоначальных условий ТС:
    _http://domen.com/key-key/ -это- ^(.*)/
    _http://domen.com/key-key -это- http://domen.com/$1 где $1 символы между "http://domen.com/" и "/"
     
  6. bat

    bat

    Регистр.:
    24 сен 2009
    Сообщения:
    984
    Симпатии:
    425
    дык тс хочет чтоб у него заменялись только страницы содержащие в урл "index.php?id=tree-grass-" и заканчивающиеся на "/". вот что между ними то поставить? )))
     
    inkubus нравится это.
  7. lamer2

    lamer2 Постоялец

    Регистр.:
    1 апр 2008
    Сообщения:
    73
    Симпатии:
    30
    azybat, ну тогда так:
    PHP:
    RewriteCond %{QUERY_STRINGid=tree-grass(.+)/$
    RewriteRule ^index.phphttp://domen.com/index.php?id=tree-grass%1 [R=301,L]
    Пути_http://domen.com/index.php?id=tree-grass-здесь-что-угодно/ должны меняться на_http://domen.com/index.php?id=tree-grass-здесь-что-угодно
     
    inkubus и azybat нравится это.
  8. inkubus

    inkubus

    Регистр.:
    27 мар 2010
    Сообщения:
    180
    Симпатии:
    56
    Код:
    RewriteCond %{QUERY_STRING} id=tree-grass(.+)/$
    RewriteRule ^index.php$ http://domen.com/index.php?id=tree-grass%1 [R=301,L]
    вот этот вариант сработал. Шакарная работа, парни, почтеннейше благодарю за помощь, выручили.
     
Статус темы:
Закрыта.