Twitter RSS

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% [?]

Ai intrebari?

* Te rog sa postezi pe NetHelp orice intrebare care nu are legatura cu articolul.

Retele sociale
Reclamã
Sharing makes you cool!
Categorii
Apache
Articole si tutoriale legate de serverul web Apache.
/articole-tutoriale-apache/

cPanel
Articole si tutoriale legate de utilizarea si administrarea sistemului de gestiune a serverelor de hosting, cPanel.
/articole-tutoriale-cpanel-whm/

DNS
Vezi toate articolele din categoria DNS
/dns-bind-domain-name-services/

Linux
Articole si tutoriale legate de Linux, sisteme BSD sau alte sisteme de operare din familia UNIX.
/articole-tutoriale-linux/

Mail
Vezi toate articolele din categoria Mail
/mail/

MySQL
Articole si tutoriale despre serverul de baze de date MySQL.
/articole-tutoriale-optimizare-mysql/

Perl
Vezi toate articolele din categoria Perl
/perl-practical-extraction-and-report-language/

PHP
Vezi toate articolele din categoria PHP
/php-language-hypertext-preprocessor/

Retele
Tutoriale despre retele de calculatoare, configurarea interfetelor de retea si rutarea IP-urilor.
/retele-networking/

Virtualizare
Articole si tutoriale despre virtualizare si sistemel virtuale create cu Xen sau OpenVZ.
/virtualizare-xen-openvz/

Web hosting
Articole despre serviciile de gazduire web, dedicate sau in regim shared.
/web-hosting/

Webmin / Virtualmin
Articole si tutoriale legate de sistemul de gestiune gratuit Webmin sau modulul Virtualmin.
/webmin-virtualmin/





Newsletter
LAMP Recomandã
NetHelp
SRV.ro
cpadmin.ro
ABCDomenii