Как Rewrite URL с domain.com?p=1 в domain.com/1

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

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

    ArtFun Постоялец

    Регистр.:
    6 фев 2008
    Сообщения:
    139
    Симпатии:
    21
    Подскажите пожалуйста.
    Как переписать урл вида http://mydomain.com?p=1
    в урл http://mydomain.com/1

    Заюзал мод реврайт генератор на сайте http://www.generateit.net/mod-rewrite/
    Но там есть возможность переписать только в урл вида http://mydomain.com/1.html , а если убрать майм, то не работает.
    Мне нужно именно без расширения и чтоб работал пхп.
    Спасибо.
     
  2. неважно

    неважно Создатель

    Регистр.:
    8 апр 2006
    Сообщения:
    34
    Симпатии:
    13
    RewriteEngine On
    RewriteRule ^([^/]*)$ /?p=$1 [L]
     
  3. ArtFun

    ArtFun Постоялец

    Регистр.:
    6 фев 2008
    Сообщения:
    139
    Симпатии:
    21
    Не работает... 500-я ошибка.
    У меня домен вида http://domain.org.ua/
     
  4. alexz15

    alexz15

    Регистр.:
    3 окт 2008
    Сообщения:
    394
    Симпатии:
    189
    Код:
    RewriteEngine On
    RewriteRule ^([0-9]+)(/?)+$ index.php?p=$1 [L]
     
  5. andrnag

    andrnag

    Регистр.:
    26 мар 2008
    Сообщения:
    350
    Симпатии:
    124
    ArtFun
    Этот код выдал сервис, что ты порекомендовал. Посмотри внимательно, там есть настройки, префиксов и суффиксов.
    Лично я не вижу никаких препятствий, чтобы этот код работал. Он выглядит правильным.

    Можешь привести полный листинг файла .htaccess?

    Кстати, что у тебя лежит в папке /1 на сервере? По идее, запрос перепишется к файлу /1/index.php или .html, смотря что указано в DirectoryIndex в .htaccess
     
  6. Sargej_Saint

    Sargej_Saint Создатель

    Регистр.:
    5 ноя 2008
    Сообщения:
    45
    Симпатии:
    8
    Вот так работает:
    PHP:
    RewriteEngine on
    RewriteRule 
    ^.htaccess$ - [F]
    RewriteRule ^(.*)/$ ?p=$1
    !!! Правда отбрати внимание !!!
    Вот так работает: http://mydomain.com/1/
    Вот так НЕработает: http://mydomain.com/1
     
  7. B0nuse

    B0nuse Постоялец

    Регистр.:
    6 июн 2009
    Сообщения:
    105
    Симпатии:
    21
    Ты не опечатался?
    может
    http://mydomain.com/?p=1 в http://mydomain.com/1
    Если так, то (при условии, что только цифры)
    PHP:
    RewriteEngine on
    RewriteRule 
    ^([0-9]+)/?$ ?p=$[R,L]
    Если все, что угодно, то
    PHP:
    RewriteEngine on
    RewriteRule 
    ^(.*)/?$ ?p=$[R,L]
    Как-то так...
    Или
    PHP:
    RewriteEngine on
    RewriteRule 
    ^(.*)/?$ index.php?p=$[R,L]
     
  8. andrnag

    andrnag

    Регистр.:
    26 мар 2008
    Сообщения:
    350
    Симпатии:
    124
  9. Sargej_Saint

    Sargej_Saint Создатель

    Регистр.:
    5 ноя 2008
    Сообщения:
    45
    Симпатии:
    8
    С человеческой точки зрения http://mydomain.com?p=1 и http://mydomain.com/?p=1 одно и то же, с компьютерной же это два разных урла. Кстати, подобные фичи (когда на одну и ту же страницу ссылаются по-разному: то http://mydomain.com?p=1, то http://mydomain.com/?p=1) очень часто с точки зрения поисковиков воспринимаются как дублирование контента и приводят к снижению релевантности страниц.

    Тест показал, что http://mydomain.com?p=1 моментально редиректит на http://mydomain.com/?p=1

    А что касается равенства http://mydomain.com/?p=1 и http://mydomain.com/index.html?p=1, то это далеко не факт, так как http://mydomain.com/?p=1 может быть на самом деле и http://mydomain.com/index.php?p=1 и http://mydomain.com/index.htm?p=1 и http://mydomain.com/index.html?p=1
     
  10. andrnag

    andrnag

    Регистр.:
    26 мар 2008
    Сообщения:
    350
    Симпатии:
    124
    согласен на счет последнего. При различном DirectoryIndex соответственно и будет разный файл вызываться, я просто не стал углубляться.

    тоже потестировал, тоже редиректит. Интересно, это браузер делает, или сервер?
    Интересно было бы это выяснить точно.
     
Статус темы:
Закрыта.