index.php?id=2 в page1.html

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем pavloff, 21 мар 2008.

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

    pavloff

    Регистр.:
    5 авг 2007
    Сообщения:
    265
    Симпатии:
    39
    Ребят подскажите как написать файлик .htaccess что бы можно было обращатся к страницам в .html

    /index.php?id=1 = page1.html
    /index.php?id=2 = page2.html

    Т.е. открываем в браузере сайт.ру/page1.html а он грузит контент со страницы /index.php?id=1.

    P.S. может я и намутил с объяснениями, вообщем хочется сделать сайт на php (/index.php?id=2) а для SEO хочется page.html
     
  2. webcoder

    webcoder Прохожие

    очень просто:

    RewriteEngine On
    Options +FollowSymlinks
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^page(.*).html$ /index.php?id=$1 [L]

    но если передаешь только цифры то лучше
    ([0-9\-]+) вместо (.*)
     
  3. pavloff

    pavloff

    Регистр.:
    5 авг 2007
    Сообщения:
    265
    Симпатии:
    39
    Спасибо, т.е. с таким кодом при обращении к странице page1.html как бы будет открываться страница index.php?id=1

    Что ты имеешь ввиду под "но если передаешь только цифры то лучше"?
     
  4. allsu

    allsu Постоялец

    Регистр.:
    29 дек 2007
    Сообщения:
    135
    Симпатии:
    5
    помогите и мне плиз
    у меня сейчас урлы такого вида
    domen.ru/?page=0
    domen.ru/?page=1
    domen.ru/?page=2
    ............и т.д.

    что вставить в файл .htaccess
    чтобы получить
    domen.ru/page0.html
    domen.ru/page1.html
    domen.ru/page2.html

    предложеный выше способ не помог
    (может руки кривые)
     
  5. webcoder

    webcoder Прохожие

    верно

    Передается методом $_GET то есть
    id=1 есть page1.html
    Для id=2 есть page2.html
    в общем если id не будет = name
    или другое значение а будут передаваться только цифры.
     
  6. alexzh

    alexzh

    Регистр.:
    13 сен 2006
    Сообщения:
    222
    Симпатии:
    88
    надо изменять не только .htaccess, сначала надо сделать так чтобы сам движек выдавал ссылки нужного тебе вида domen.ru/page0.html domen.ru/page1.html domen.ru/page2.html, т.е. надо изменить шаблон для начала сделать так чтобы вместо /?page=2 в коде страницы было page2.html
     
  7. fxdir

    fxdir Создатель

    Регистр.:
    17 фев 2008
    Сообщения:
    17
    Симпатии:
    3
    если нет поддержки mod_rewrite в админке, обратите внимание в коде где именно образуются ссылки и там легко можно подправить, ну правда немного знать надо :)
     
  8. inovision

    inovision Создатель

    Регистр.:
    28 июл 2007
    Сообщения:
    14
    Симпатии:
    3
    Попробуй так:
    RewriteEngine On
    RewriteBase /
    RewriteRule ^page([0-9]+).html$ /?page=$1 [L]
     
  9. avton0m

    avton0m Создатель

    Регистр.:
    27 янв 2008
    Сообщения:
    29
    Симпатии:
    4
    У кого не работает пусть попробует добавить
    <IfModule mod_rewrite.c>
    и
    </IfModule>

    Я добавил, у меня заработало
     
  10. pavloff

    pavloff

    Регистр.:
    5 авг 2007
    Сообщения:
    265
    Симпатии:
    39
    Народ, а еще вопрос, как теперь мне на каждую инклюдимую страницу сделать разный title и meta
     
Статус темы:
Закрыта.