За последние 24 часа нас посетили 37919 программистов и 1807 роботов. Сейчас ищут 875 программистов ...

Чпу, mod_rewrite и .htaccess

Тема в разделе "PHP для новичков", создана пользователем bybad, 3 дек 2013.

  1. bybad

    bybad Активный пользователь

    С нами с:
    31 июл 2011
    Сообщения:
    25
    Симпатии:
    0
    Здравствуйте товарищи, столкнулся с проблемой которую не могу решить уже около недели и теперь я здесь - надеюсь на вашу квалифицированную помощь.

    Суть проблемы:

    С помощью mod_rewrite хотелось бы получить красивое название для URL'a с поисковым запросом.

    В общем, есть форма:

    Код (Text):
    1. <form id="searchform" name="searchform" method="get" action="search/interesnye-fakty/">
    2. <input name="fakty" placeholder="Поиск" type="text" />
    3. </form>
    Через эту форму с помощью _GET я передаю поисковый запрос в файл обработчик, который называется search-interesnye-fakty.php

    Поисковой запрос закодирован и выглядит следующим образом:

    http://мой сайт.ru/search-interesnye-fakty.php?fakty=%ED%E0+%FE%E3%E5

    Хочу привести эту ссылку к следующему виду

    http://мой сайт.ru/search/interesnye-fakty/%ED%E0+%FE%E3%E5 или хотя бы к http://мой сайт.ru/search/interesnye-fakty/?fakty=%ED%E0+%FE%E3%E5 но есть ещё одна небольшая загвоздка. Помимо запроса, в строке может присутствовать постраничная навигация, т.е. ссылка может выглядеть ещё и вот так http://мой сайт.ru/search-interesnye-fakty.php?fakty=%ED%E0+%FE%E3%E5&page=27

    В идеале, данную ссылку хотелось бы преобразовать в http://мой сайт.ru/search/interesnye-fakty/%ED%E0+%FE%E3%E5/page/27 но на конце должно быть разрешено использование только цифр.

    Где-то уже была предложена вот такая конструкция:

    Код (Text):
    1. RewriteCond %{QUERY_STRING} ^fakty=([^/]+?)/page/(\d+?)$ [NC]
    2. RewriteRule . search-interesnye-fakty.php?fakty=%1&page=%2 [L]
    Но если я добавляю к номеру страницы "лишние" символы, всё съезжает, вместо того что бы перекинуть на страницу с ошибкой.

    Код (Text):
    1. ErrorDocument 404 http://мой сайт.ru/error404.php
    Надеюсь на вашу квалифицированную помощь в решении данного вопроса и с нетерпением жду любых вариантов.