Как сделать короткую ссылку на страницу?

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем tavrik, 16 июл 2010.

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

    tavrik Постоялец

    Регистр.:
    14 мар 2010
    Сообщения:
    57
    Симпатии:
    13
    Здравствуйте!
    Подскажите пожалуйста как сделать короткую ссылку на страницу?
    Объясню поподробнее,что я имею в виду:

    Допустим в меню на сайте есть ссылка вида
    http://site.ru/stranica.php

    Вот что нужно прописать в htaccess, чтоб эта ссылка открывалась по такому адресу:

    http://site.ru/stranica/

    Надеюсь,что смысл понятен.За ранее благодарен за любые подсказки!
     
  2. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    RewriteEngine on
    RewriteRule ^(.+/[^\/]+)/?$ $1.php [L,NS,NC]
     
  3. tavrik

    tavrik Постоялец

    Регистр.:
    14 мар 2010
    Сообщения:
    57
    Симпатии:
    13
    diavolic извините пожалуйста,а можно поподробнее как конкретно прописывать файлик stranica.php ? Здесь, как я понимаю,вы написали это для всех страниц с расширением .php ?
     
  4. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    если нужно редиректить только какой_угодно_домен/stranica/ то вот так:
    Код:
    RewriteEngine on
    RewriteRule ^(.+/stranica)/?$ $1.php [L,NS,NC]
    если нужно редиректить какой_угодно_домен/любой_каталог/ только на stranica.php то вот так:
    Код:
    RewriteEngine on
    RewriteRule ^(.+)/[^\/]+/?$ $1/stranica.php [L,NS,NC]
     
    tavrik нравится это.
  5. tavrik

    tavrik Постоялец

    Регистр.:
    14 мар 2010
    Сообщения:
    57
    Симпатии:
    13
    Я вм конечно же очень благодарен,но не работает... :(

    При попытке открыть адрес http://site.ru/stranica/ пишет что страницы нет такой.

    Делал так:

    RewriteEngine on
    RewriteRule ^(.+/stranica)/?$ $stranica.php [L,NS,NC]

    и делал так:

    RewriteEngine on
    RewriteRule ^(.+/stranica)/?$ $1.php [L,NS,NC]

    Все равно не пашет...:(

    И я имею в виду следующее.Здесь нужно не редиректить, а чтоб ссылка приобрела короткий юрл.Т.е. заместо вот этого http://site.ru/stranica.php

    открывалось бы так http://site.ru/stranica/

    Попросту чтоб вот это .php рубилось! Возможно такое?
     
  6. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    аааа, т.е. надо чтобы в адресной строке броузера ссылка меняла свой вид что ли?
     
  7. UDAV

    UDAV

    Регистр.:
    22 июн 2007
    Сообщения:
    780
    Симпатии:
    153
    Вот так нужно делать

    Код:
    RewriteEngine on
    RewriteRule ^stranica(\/)?$ stranica.php [QSA,L]
     
  8. tavrik

    tavrik Постоялец

    Регистр.:
    14 мар 2010
    Сообщения:
    57
    Симпатии:
    13
    Да,да! Именно так и надо!


    После этого если открыть http://site.ru/stranica/ , то пишет что страница не найдена....:bc:
     
  9. nafanyaa

    nafanyaa

    Регистр.:
    23 авг 2006
    Сообщения:
    286
    Симпатии:
    170
    RewriteEngine on
    RewriteBase /
    RewriteRule ^stranica$ /stranica.php

    в ссылках заменить
    HREF="stranica.php"
    на
    HREF="stranica"

    гм?
     
    tavrik нравится это.
  10. UDAV

    UDAV

    Регистр.:
    22 июн 2007
    Сообщения:
    780
    Симпатии:
    153

    Значит не хватает RewriteBase /
    Код:
    RewriteEngine On
    RewriteBase /
    RewriteRule ^stranica(\/)?$ stranica.php [L]
    параметр (\/)? означает, что страница одинаково работает со слешем на конце или без него.
     
    tavrik нравится это.
Статус темы:
Закрыта.