Как лучше?

Статус
В этой теме нельзя размещать новые ответы.

Smit_

Создатель
Регистрация
1 Мар 2010
Сообщения
19
Реакции
0
Появились вопросы:
1. Правильно ли я написал? Как лучше вообще?
RewriteRule ^[a-zA-Z0-9/]+$ index.php -
Это для страниц, которые могут содержать в url только цифры, буквы, /
2. Как выдавать страницы не существует, если ссылка содержит GET-параметры? типа localhost/test/?id=5.
3. Раньше я делал сайты без ЧПУ и мне приходилось работать с GET-параметрами, а теперь хочу избавиться от такого варианта и работать с содержимым url (парсить url и получать те же параметры) вот так:
$u = $_SERVER['REQUEST_URI'];
$parts = explode('/', $_SERVER['REQUEST_URI']);
Какие будут мнения на счет такого варианта (преимущества и недостатки)
4. Как сделать несколько правил RewriteRule для разных адресов (чтобы обрабатывались разными скриптами), типа:
localhost/test/articles/214/ - если после test/ идет articles/, то обрабатывать скриптом articles.php, а если что-то другое, то index.php
 
вместо ^[a-zA-Z0-9/] я пишу ^([^/]+)
так сделаноу меня
PHP:
RewriteRule ^index.html$           /index.php [NC]
RewriteRule ^([^/]+)\.html$        /index.php?x=$1 [NC]
RewriteRule ^([^/]+)/([^/]+)\.html$  /index.php?x=$1\&task=$2 [NC]
2 а какая разница
в пхп скрипте проверка если нет такого то своя страница
банально если фаил существует то выводим его если нет то выводи свою страницу с ошибкой, если вообще левый адрес пишет юзвер но на вашем домене то свои ошибки
PHP:
ErrorDocument 400 /400.php
ErrorDocument 404 /404.php

3 это
$u = $_SERVER['REQUEST_URI'];
$parts = explode('/', $_SERVER['REQUEST_URI']);
не ЧПУ

ЧПУ это
комбинация
кода в ПХП при формировании ссылок и .htaccess

.htaccess
PHP:
RewriteRule ^registration/([^/]+)/([^/]+)/([^/]+)\.html$        /index.php?x=registration\&task=$1\&ulogin=$2\&ucode=$3 [NC]
RewriteRule ^registration/([^/]+)/([^/]+)/([^/]+)/index.html$   /index.php?x=registration\&task=$1\&ulogin=$2\&ucode=$3 [NC]

RewriteRule ^restoration/([^/]+)/([^/]+)/([^/]+)\.html$         /index.php?x=restoration\&task=$1\&ulogin=$2\&ucode=$3 [NC]
RewriteRule ^restoration/([^/]+)/([^/]+)/([^/]+)/index.html$    /index.php?x=restoration\&task=$1\&ulogin=$2\&ucode=$3 [NC]

набор ссылок соотвествующий этим правилам
PHP:
// LINK
        'action' => array(
            XPAGE . "?x=registration",
            WWW . "registration.html",
            WWW . "registration/index.html",
        ),


        'action' => array(
            XPAGE . "?x=registration",
            WWW . "registration.html",
            WWW . "registration/index.html",
        ),
        'captcha' => array(
            XPAGE . "?x=registration&task=captcha",
            WWW . "registration/captcha.html",
            WWW . "registration/captcha/index.html",
        ),

       'accept' => array(
            XPAGE . "?x=registration" . "&task=form",
            WWW . "registration/form.html",
            WWW . "registration/form/index.html",
        ),

        'auto' => array(
            XPAGE . "?x=registration&task=activation&login={login}&code={code}",
            WWW . "registration/activation/{login}/{code}.html",
            WWW . "registration/activation/{login}/{code}/index.html",
        'protect' => array(
            XPAGE . "?x=registration&task=protect",
            WWW . "registration/protect.html",
            WWW . "registration/protect/index.html",
),

это куски кода из моей CMS


4 просто

PHP:
RewriteRule ^registration/([^/]+)/([^/]+)/([^/]+)\.html$        /registration.php?x=registration\&task=$1\&ulogin=$2\&ucode=$3 [NC]

RewriteRule ^login/([^/]+)/([^/]+)/([^/]+)\.html$         /login.php?x=login\&task=$1\&ulogin=$2\&ucode=$3 [NC]

RewriteRule ^forum/([^/]+)/([^/]+)/([^/]+)/index.html$    /forum.php?x=forum\&task=$1\&ulogin=$2\&ucode=$3 [NC]
 
вопросы 1-3:
посмотри для сравнения htaccess движка DLE - там практически весь основной набор используемых правил - я по данному htaccess училась свои делать раньше. :)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху