CNC saját kezűleg (php)
Ez létrehozott egy csomó módon, hogy megteremtse a CNC:
+. elég könnyen megvalósítható módszer - rohant le a .htaccess szabályok és ennyi
-: Szükséges, hogy a szerver telepítve a mod_rewrite, térfogati site - felhalmozási szabályok .htaccess
Action dobás /index.php
ForceType dobás
ForceType application / x-httpd-php
Ezek az irányelvek átirányít minden kérést. nem tartalmazó pontokat. A index.php. Ezután elemezni a lekérdezés - nem különösebben nehéz.
+: Ugyanaz a könnyebb megvalósítás
-: Szükséges, hogy a kiszolgáló telepítve mod_action modul
+: IMHO a legegyszerűbb módja annak, hogy semmit telepíteni a szerver nem szükséges, az index kérelem érkezett. feldolgozott és örvendezzünk
-: A szerver naplók felhalmozódnak jelentések 404 urlah. meg kell tiltani a fakitermelés hibák.
A másik az, hogy azt mondják, hogy még azután is egy kérést átirányítja egy nem létező osztásjeleket egy meglévő fájlt, a szerver meg fogja mutatni a megfelelő oldalon, de pontosan 404 staatu visszatérhet erre az oldalra. Tehát nem volt - meg kell adni a Start index.php header ( "HTTP / 1.0 200 OK");
Biztos vagyok benne, hogy számos módszer létezik, de mi korlátozzuk magunkat ezekre.
Az én esetemben nem volt mód arra, hogy az első jelentését. nem világos, hogy a szerver a fogadó állni mod_rewrite (bár általában a költségek;)). Második - Még nem szerzett. Nem tudom, miért, (a fennmaradó harmada ahogy csak megszerezte a vártnak A nehézség feküdt az átalakulás CNC shnogo Urla és rendszeres, és fordítva CMS Joomla (és még sokan mások látszólag) erre a célra használják, az adatbázis és dinamikusan generál új URL-eket ... . MNU nem futott bo dolgozott ugyanazon Jumla volt győződve arról, hogy az oroszlánrészét időt töltött a kialakulását az oldalt, és keresse meg a formáció ezen URL-ek egy adatbázisban kívánatos lenne megoldást találni adatbázis nélkül, és úgy találtam, hogy az alsó sorban egy sor szabályok formájában ...:
Ahhoz, hogy kezelni ezeket, írtam spetsovy osztály (az osztály is, és a minta fájl található vkontse cikket). Szétszedni az osztály is, mi nem, és posomtrite módon bizonyítani, hogy a példákat.
if ($ use_ufu == 1) require_once ( "Links.rules.php"); // betöltött szabályok fájl
if (isset ($ linksUrls) is_array ($ linksUrls)) // ha van egy tömb a szabályokat - do inicializálás
$ Linkek-> init ($ linksUrls);
>
Tartalom Links.rules.php file:
$ LinksUrls = array ();
$ LinksUrls # 91; # 93; = array ( 'hírek', "do =?");
$ LinksUrls # 91; # 93; = array ( 'news /?', "Do = news_id = ??");
// mod oldalak
$ LinksUrls # 91; # 93; = array ( 'oldalak', "do =?");
$ LinksUrls # 91; # 93; = array ( 'oldalak /?', "Do = pid = ??");
ha // 404-es hiba ($ Linkek-> parseURL ($ url)!);
die ( „Sajnos az oldal nem található” „);
>
>
print_r ($ _ GET);
Ha minden jól megy - a $ _GET tömb változók hozzá, amely korábban alkalmazott tipikus kérelmet. Azt kell mondani, hogy a kérelemben meg kell lennie a forma / pages / 2. Azt is meg kell állapítani, hogy megadhatja a változókat, amelyek nincsenek meghatározva a szabályozások, mint a szokásos kérés / pages / 2? Ize = 5
// eredmény: site.com/pages/
Természetesen megértjük, hogy a folyamat nem általános, de elég könnyen megvalósítható, könnyen használható.
Mindenesetre, én hálás lesz minden megjegyzést \ kritika, mert segítenek, hogy javítsa kód \ módszer \ módszer)
TODO: Most NC shnyj URL képződött vegyületet egy hagyományos értéket törtvonal „/”. A jövőben azt tervezzük, hogy távolítsa el a kötési sorrendjét következő változók a szokásos Urla.
Osztály és példák vannak itt.
UPD: egy megfelelő módszert ismertet írásában CNC
kéz (PHP). CNC Storage adatbázis
Általában kösz a cikket korábban a .htaccess próbáltam, de nem működött, most megpróbálom át az osztály)))
Próbáld elérni a célt, hogy ment.
PS: írok egy cikket a CNC (amely ismerteti az elvben független a rendszer.).
ZYY: A leírt technológia (azaz ErrorDocument 404 /index.php) van egy jelentős hátránya - a képtelen kezelni a bejegyzést adatokat. Ezért azt tanácsolom mindenkinek, hogy ugyanazt a revrayt divat átirányítani az összes kérés index oldal.
Az elfogadott módszer, mégis.
kap, hogy a $ _SERVER [ "REQUEST_URI"]? Vonal típusa: / / hírek / 2 ?.
Az egyetlen hátránya - a kérdőjel. Előnyök: ne tegye a szerveren. htaccess és rönk ne érintse.
IMHO könnyebb és jobb, hogy egy .htaccess revrayn az index (ez revrayn nem igazgatók index). Így is, az események nem lehet eltömődve. De a kérdőjel Urla - Én személy szerint nem tetszik =)
PS% van egy másik lehetőség, hogy tárolja URL egy adatbázisban, mivel ez ugyanaz a Joomla (több SEF), de ez a változat a jelenlegi megközelítés a kis telek.
Ez, valamint egy pár lehetőség fogom leírni, mint egy szál a cikket. hi aktuális idő jelenik =)
A hasított minta vikoristovuvati tartjuk upstream router Yaky fіltruє peredavaєmі paraméter keresztül preg_match, jak Taqiy vikoristali a Zend Framework