O problema des intalnita in cazul web developerilor amatori e neatentia la numele fisierelor. Multi isi creaza fisierele testand totul pe Windows fara sa aiba in vedere faptul ca sistemele UNIX-Like (Linux, FreeBSD etc) sunt case-sensitive. Adica, daca in Windows fisierul Contact.php e acelasi cu contact.php, in Linux sunt tratate ca fisiere diferite. Problema apare cand in cadrul site-ului linkul e creat catre contact.php dar pe server exista doar fisierul Contact.php ceea ce va rezulta intr-o eroare de tip 404 pentru ca fisierul cautat nu poate fi gasit.
Problema se poate rezolva redenumind fisierul, dar daca e vorba de un site mare sau de o echipa de programatori obisnuiti sa programeze pentru Windows si implicit predispusi sa faca astfel de greseli solutia nu e tocmai buna. Pentru a rezolva problema in serverul web Apache s-a adaugat un modul numit mod_speling care verifica resursa ceruta si reface cererea in functie de fisierele gasite in directorul in care ar trebui sa existe resursa cautata.
Astfel, daca instalam mod_speling ni se permite existenta unei greseli de scriere in URL. Aceasta greseala poate fi o litera mare in locul unei litere mici, o litera lipsa din numele fisierului sau doua litere carora li s-a schimbat ordinea (ex. cotnact.php in loc de contact.php).
Pentru a instala modulul avem nevoie de sursa serverului web Apache, care poate fi descarcata de pe site-ul oficial sau de pe un mirror. Dupa ce downloadam sursa o salvam in directorul de lucru pentru a compila modulul folosind comanda apxs.
[root@server install]# fetch http://apache.mirrors.evolva.ro/httpd/apache_1.3.41.tar.gz apache_1.3.41.tar.gz 100% of 2424 kB 7590 kBps [root@server install]# tar -zxvf apache_1.3.41.tar.gz x apache_1.3.41/ x apache_1.3.41/ABOUT_APACHE x apache_1.3.41/cgi-bin/ x apache_1.3.41/cgi-bin/printenv x apache_1.3.41/cgi-bin/test-cgi x apache_1.3.41/conf/ x apache_1.3.41/conf/access.conf-dist x apache_1.3.41/conf/highperformance.conf-dist x apache_1.3.41/conf/httpd.conf-dist x apache_1.3.41/conf/httpd.conf-dist-nw x apache_1.3.41/conf/httpd.conf-dist-win x apache_1.3.41/conf/magic x apache_1.3.41/conf/mime.types x apache_1.3.41/conf/srm.conf-dist x apache_1.3.41/config.layout x apache_1.3.41/configure ......................... [root@server install]# cd apache_1.3.41/src/modules/standard/ [root@server standard]# /usr/local/sbin/apxs -c mod_speling.c cc -DLOGIN_CAP -funsigned-char -O2 -fno-strict-aliasing -pipe -DDOCUMENT_LOCATION="/usr/local/www/data" -DDEFAULT_PATH="/bin:/usr/bin:/usr/local/bin" -DHARD_SERVER_LIMIT=512 -fpic -DSHARED_MODULE -I/usr/local/include/apache -c mod_speling.c cc -shared -o mod_speling.so mod_speling.o [root@server standard]# /usr/local/sbin/apxs -ian speling mod_speling.so [activating module `speling' in /usr/local/etc/apache/httpd.conf] cp mod_speling.so /usr/local/libexec/apache/mod_speling.so chmod 755 /usr/local/libexec/apache/mod_speling.so cp /usr/local/etc/apache/httpd.conf.new /usr/local/etc/apache/httpd.conf rm /usr/local/etc/apache/httpd.conf.new [root@server standard]#
In mod normal dupa instalare comanda apxs modifica fisierul httpd.conf pentru a adauga suportul pentru modulul instalat. Totusi, e bine sa verificam daca intr-adevar au fost adaugate liniile AddModule si LoadModule iar daca nu exista sa le adaugam manual.
[root@server install]# awk '/(AddModule|LoadModule).+mod_speling/' /usr/local/etc/apache/httpd.conf LoadModule speling_module libexec/apache/mod_speling.so AddModule mod_speling.c [root@server install]#
Dupa instalare putem activa modulul adaugand in httpd.conf daca dorim o activare globala sau in fisierul .htaccess daca dorim activarea doar pentru o locatie urmatoarele linii:
<ifmodule mod_speling.c> CheckSpelling On </ifmodule>
Dupa ce am terminat instalarea si activarea in zonele dorite putem testa incercand diferite URL-uri gresite. Vom observa ca URL-urile vor fi corectate automat printr-o redirectare rapida catre fisierul corect.
Popularity: 1% [?]




