ЧПУ на самописном движке

Тема в разделе "PHP", создана пользователем vanderv, 23 сен 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. vanderv

    vanderv

    Регистр.:
    30 май 2009
    Сообщения:
    267
    Симпатии:
    12
    Вот такого вида ссылка /post/300/
    300 это id статьи... какая функция отвечает за считывание этого id?
     
  2. drawing4

    drawing4

    Регистр.:
    21 ноя 2008
    Сообщения:
    323
    Симпатии:
    37
    Кто ж вам скажет какая функция отвечает за считывание id если движок самописный.

    На сервер скорее всего передается POST запрос в котором присутствует ваш id, а дальше нужно смотреть по скрипту какие функции запускаются. Echo или Print в помощь. Ну или отладчик установить, да и посмотреть. Я пользуюсь eclipse PDT
     
  3. krivov

    krivov Постоялец

    Регистр.:
    24 дек 2007
    Сообщения:
    142
    Симпатии:
    19
    с помощью .htaccess

    Создаем файл .htaccess и кладем его в корень сайта. Первой строкой в этом файле мы пишем:

    RewriteEngine on

    Эта строка включает модуль mod_rewrite. Далее, мы пишем сами условия куда и зачем обращаться. Для вашего случая, код будет выглядеть примерно так:

    RewriteEngine on
    RewriteRule ^post/([0-9]+)/? post.php?id=$1 [L]

    Он будет перенаправлять с http://site.ru/post/4/ сюда http://site.ru/post.php?id=4
     
  4. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    не будет так работать. надо как то так:

    Код:
    RewriteEngine on
    RewriteRule ^.+post/([0-9]+)/?$ post.php?id=$1 [L]
     
  5. t3s

    t3s

    Регистр.:
    16 фев 2008
    Сообщения:
    719
    Симпатии:
    290
    krivov, diavolic
    ТС спрашивал какая функция отвечает за считывание этого id, а для изучений и дискуссий по поводу htaccess есть более подходящий раздел...

    vanderv, проще всего посмотреть файл htaccess от самописного движка - там действительно должна быть строка, похожая на те что описали krivov или diavolic

    справа вы увидите что-то вроде post.php?id=$1 (или index.php?id=$1 - хз какой файл там за что отвечает, телепаты в отпуске а пример вы не соизволили предоставить)

    данный файл (post.php либо index.php соответственно) получает и обрабатывает столь нужное вам id
    в нем ищите что-то вроде
    PHP:
    $id $_GET["id"];
    и соответственно считывающую его функцию...
     
  6. vanderv

    vanderv

    Регистр.:
    30 май 2009
    Сообщения:
    267
    Симпатии:
    12
    Вот мой htaccess:
    HTML:
    php_value display_errors 1
    php_value error_reporting 2047
    AddHandler application/x-httpd-php .xml
    AddDefaultCharset utf8
    Options +FollowSymLinks
    RewriteEngine on
    RewriteCond %{QUERY_STRING} !no_rewrite=?$ [NC]
    RewriteCond %{REQUEST_URI} !^/(index.php|ajax.php|pages|robots.txt|sitemap.xml|go.php).*$ [NC]
    RewriteCond %{REQUEST_URI} !^/supplements/ [NC]
    RewriteCond %{REQUEST_URI} !\.(js|css|gif|png|jpg|ico|swf|fla|zip|doc|xls|pdf|wmv|avi)$ [NC]
    RewriteRule ^(.*) /index.php?%{QUERY_STRING} [L]
    #RewriteCond %{HTTP_HOST} ^site.ru$
    #RewriteRule ^(.*)$ [url]http://www.site.ru/[/url] [R=301,L]
     
  7. shamantc

    shamantc ЗлОй ШаМан

    Заблокирован
    Регистр.:
    3 ноя 2008
    Сообщения:
    655
    Симпатии:
    184
Статус темы:
Закрыта.