парcинг на лету с применением .ht

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем CrashX, 14 фев 2011.

  1. CrashX

    CrashX В прошлом XSiteCMS

    Регистр.:
    6 июн 2008
    Сообщения:
    682
    Симпатии:
    112
    суть такова есть куча статичных станиц
    во всех есть код который нужно заменить,
    парсить их на текст и тп нет смысла...

    идея простая нужно что бы любая запрошена страница с расширением *.html(htm) была обработана скажем parser.php

    внешне это выглядит как
    site.ru/arcade/nokia/contra.html
    в нутри фаила
    как передать в фаил выделенную часть через .ht?
    $tpl=$_GET['url']
    ob_start();
    require_once($tpl);
    $template = ob_get_contents();
    ob_end_clean();
    а потом replace()
    ну и эхо
     
  2. ShoxMaster

    ShoxMaster

    Регистр.:
    3 дек 2008
    Сообщения:
    393
    Симпатии:
    150
    Код:
    <FilesMatch "\.html$">
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^(.*)$ /parser.php?url=%{REQUEST_URI} [T=application/x-httpd-php,L,QSA]
    </FilesMatch>
    В переменной %{REQUEST_URI} как раз и будет имя запрошеного файла, потом всё это будет передано через GET запрос.
     
    XSiteCMS нравится это.
  3. CrashX

    CrashX В прошлом XSiteCMS

    Регистр.:
    6 июн 2008
    Сообщения:
    682
    Симпатии:
    112
    что то не работает, только смог проверить 404...
    Код:
    #############################################
    ## ReWrite
    DirectoryIndex index.html
    <FilesMatch "\.html$">
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^(.*)$ /parser.php?url=%{REQUEST_URI} [T=application/x-httpd-php,L,QSA]
    </FilesMatch>
    
    PHP:

    <?php

    /**
     * $Revision: 217 $
     * $Date: 2010-02-02 14:27:01 +0600 (Вт, 02 фев 2010)$
     */
    $tpl $_GET['url'];
    echo 
    $tpl;
    ob_start();
    require_once(
    $tpl);
    $data ob_get_contents();
    ob_end_clean();
    echo 
    $data.'OLOLLOLOLOLOLOLOLO';
    exit ();
    ?>
    Добавлено через 7 минут
    хм все исправил проблема в хосте была )))