Php crearea CNC
- Crearea unui NC
- Setarea modificărilor în .htaccess
- Analiza expresiei regulate în RewriteRule
- handler CNC în PHP
- Pentru a rezuma
Crearea unui NC
Și eu voi începe cu faptul că utilizarea de conversii de unități, ca un handler plin CNC nu poate fi numită o soluție bună. În special, acest lucru a condus adesea la mesajele de eroare în jurnalele de servere care sunt asociate cu mai multe niveluri CNC.
De exemplu, în cazul în care: categorie / nume / - tratat destul de succes, aici pur și simplu: categorie / - chiar și în prezența a directivei relevante pentru fișierul .htaccess. Acesta emite un avertisment. Cu toate acestea, acest lucru nu afectează funcționarea site-ului. În plus, există o serie de alte probleme, dar eu nu voi intra în ele, pentru că ele sunt pur subiective.
Setarea modificărilor în .htaccess
RewriteEngine on
RewriteCond%! -f
RewriteCond%! -l
RewriteCond%! -d
RewriteRule ^ (. *) $ Index.php? Furl = $ 1 [D L, QSA]
Să ne uităm la exemplul dat în detaliu.
IfModule - după cum sugerează și numele, prezenta directivă verifică modul mod_rewrite.c pe server, care, la rândul său, asigură directivele de lucru de conversie.
Urmatoarea vine RewriteEngine - această directivă, care vă permite să gestionați unitatea de conversie de stare. În mod normal, acesta este oprit prin utilizarea directivei RewriteEngine, putem porni. Pentru a face acest lucru ca o valoare indică: pe.
Cu alte cuvinte, dacă un site are fișier filename.html și apel la merge, acesta va fi deschis acest fișier special, și nu transferat la mașinile procesor de interogare. Astfel, vom rezolva mai multe probleme în același timp.
De asemenea, trebuie remarcat faptul că aceste condiții sunt construite pe prelucrarea REQUEST_FILENAME variabile - numele fișierului solicitat.
Cu alte cuvinte, php-procesor primește numai NC, fără a exclude posibilitatea de a obține și a parametrilor dinamici prin POST și / sau GET.
Analiza expresiei regulate în RewriteRule
Am digresiune si fac exemplul folosit în expresia regulată: ^ (. *) $.
- Simbolul bifă (^) indică începutul șirului de interogare.
- Parantezele sunt folosite pentru a separa grupuri de expresii regulate și extrage un subșir.
- Perioada (.) Denotă cel puțin un caracter, cu excepția newline.
- Un asterisc (*) înseamnă orice număr de caractere dintr-un șir de caractere, precede.
- Dolar ($) se potrivește cu sfârșitul șirului de interogare.
Cu alte cuvinte, vom extrage un subșir format din caracterele de interogare, de la început până la sfârșit.
Următorul este un indiciu script PHP index.php de la locația de fișier pe site-ul .htaccess. Valoarea parametrului înfășura aici este primul (și în acest caz, și singurul) pentru a extrage un subșir. În acest scop, deoarece valoarea variabilei menționată este o expresie regulată 1 $. Prin urmare, în cazul în care expresia regulată conține mai multe extracte subșir, trebuie să specificați numărul necesar de prioritate.
Aș dori, de asemenea, să se constate că expresia regulată poate fi mai complexe, dar în acest caz, exemplul este mai mult decât suficient.
Pentru a rezuma
2plutov.by Ei bine, există mai multe opțiuni. Exemplul meu vă permite să martor CNC fără linie de parametri ca valoare variabilă GET. Nu are nevoie de un bootstrap și altele. totul este simplu și clar. IMHO desigur.
2Vitaly Pestin care va fi disponibil pentru indexare și + indică curs de meta-canonică.
2Sergey Steklov CTN este deja construit în plugin-ul WordPress și nu este nevoie de aici. Există, desigur, add-on pentru unele plugin-uri caching pentru a împiedica mecanismul standard pentru a revizui CNC în WordPress și imediat transfera toate pe statice, dar are, de asemenea, propriile sale probleme. În general, WordPress este un lucru teribil în ceea ce privește resursele.
sticlă 2Sergey de plug-in-are nici un sens pentru a opri, pentru că ea nu consumă resurse și sunt, de obicei integrate numai în panoul de administrare.
Nu a fost verificat P3 de încărcare plugin-ul (Plug-Performance Profiler), el a arătat că plugin-ul creează o sarcină mică. Undeva 4% din totalul plug-in-uri.)) Poate suna amuzant, dar când eu nu publică, la momentul respectiv, scoateți ștecherul. Dacă este necesar, încerc să opri la momentul plugin-uri suplimentare. Doar atunci când se creează o sarcină mică, sarcina este suma totală a acestor plug-in-uri pot fi destul de mare. De aceea, încă o dată oprit.))
2Sergey Steklov aici trebuie să înțeleagă în mod clar ce una sau cealaltă sarcină. Orice script, un program, etc. în cazul în care locul de muncă, sunt împovărătoare, dura până memorie, etc. Desigur, o mulțime depinde de ce fel de plug pe care îl utilizați. Dar, de exemplu, Cyr-To-Lat este pur și simplu o funcție de transliterare, care este cauzată de adăugarea și / sau editarea post. Cu toate acestea, sarcina principală pentru a interoga o bază de date, în WordPress multe dintre ele, dar un plugin transliterație nu este cu siguranta legat. Mai precis, plug-in funcționează numai în zona de administrare și nu funcționează pe blog-ul.
La acasă, am folosit Cyr cu Lat îmbunătățită. Uneori, sarcina a ajuns la 17%. Deci, este ceva! Ceea ce am verificat Cyr la Lat, astfel încât odată ce este clar că nu există nici o sarcină, așa că acum se întoarse spre el. Prin urmare, plug-in plug-in discordie.