NC pentru un site in php

Ei bine, și când am vrut să creeze lucrurile mele pe acest subiect, care în cele din urmă dezvăluie secretele de a crea un simplu simplu CNC nu bibelouri, strict și eficient. Vom crea CNC folosind .htaccess și direct mod_rewrite. dar toate în ordine.

Să începem. De exemplu, un mic ticlui o situație:

Rolul principal este dat la trimiterea fișierului .htaccess CNC a fost de a face toate lucrările. Deci, chtozhe ar trebui să fie în fișierul .htaccess:

RewriteEngine on
RewriteRule ^ (. *) / (. *) $ Index.php? Cat = $ 1art = $ 2 utilizatori [L]

Asta e tot. Acum, tot ce trebuie să facem este să „captură“ și de a folosi index.php cele două variabile și artă pisică.

Avertizare dacă utilizați handler php cgi-bin în loc de fișierul .htaccess, trebuie să aveți htaccess.txt

index.php - fișierul principal

htaccess.txt - fișier pentru handler cgi-bin

.htaccess - fișier pentru Apache handler

Se extrage conținutul arhivei la serverul lor și să încerce să interogare cum ar fi <ваш_сервер>/ Trololo / 512 sau orice alt <ваш_сервер> - vezi că nu este necesar să se scrie, așa că am un loc unde ați dezarhivat fișierul și unde va rula fișierul.

Pentru cei care nu înțeleg ce și cum.

Întreaga esență a CNC este htaccess, și că el face?

RewriteEngine on
RewriteRule ^ (. *) / (. *) $ Index.php? Cat = $ 1art = $ 2 utilizatori [L]

și dă manipulare șerpi ca aceasta:

Recomandate în articol, de exemplu, puteți schimba la voință.

vom scrie în .htaccess:

RewriteEngine on
RewriteRule ^ (. *) / (. *) / (. *) $ Avto.php? Cat = $ 1avto = $ 2model = $ cu 3 [L]

Sau ce, dacă avem mai multe stivuitoare PHP, este posibil ca toată lumea să pună o regulă în .htaccess:

RewriteEngine on
RewriteRule ^ avto /(.*)$ avto.php? Id = $ 1 [D L]
RewriteRule ^ aer /(.*)$ forair.php? Id = $ 1 [D L]
RewriteRule ^ flot /(.*)$ waterflot.php? Id = $ 1 [D L]

Exemplul arată că toate cererile care încep cu domen.ru/avto/ vor fi trimise la avto.php handler, începând cu domen.ru/air/, în handler forair.php.

Acum, este demn de remarcat importanța! în fața dumneavoastră RewriteRule plasați codul următor:

Acest cod va permite să se evite sesizarea handler atunci când se solicită fișiere statice și folderele sunt stocate fizic în dosarul site-ului.

În acest caz, datele site-ului va fi numit în mod corect pentru orice CNC, cu orice număr de slash-uri. În mod similar, până la toate fișierele antet pentru HTML.

E timpul să vorbim despre cea de a doua opțiune de redirecționare prin .htaccess. Cel de al doilea exemplu de realizare este complet legat la pământ, ci este un redirect universal din htaccess. Redirecționarea constă dintr-o singură regulă:

RewriteRule ^ ([A-Za-Z0-9 - /] +) $ /engine.php?query=$1 [L]

Și tu după prelucrare se poate face orice cu datele respective.

Și, probabil, utile: Pentru a afla numărul de intrări într-o matrice, utilizați count ($ url). pentru a vedea ultima valoare record în matrice, utilizați final ($ url).