Arhivele Blog-ului

URL rewriting

Modulul mod_rewrite din Apache permite modificarea URL-urilor într-o manieră complicată însă de o utilitate incontestabilă, transformarea URL-urilor dinamice în statice reprezentând o tehnică SEO de bază. Întrucât stăpânirea regulilor de transformare durează destul de mult, este indicată verificarea fişierului .htaccess într-un mediu de test.

Instalarea modulului mod_rewrite în XAMPP se face prin decomentarea liniei

LoadModule rewrite_module modules/mod_rewrite.so

din fişierul httpd.conf şi repornirea Apache. De asemenea este necesar ca directiva AllowOverride All să apară în tag-ul <Directory> al căii de instalare /xampp/htdocs. Verificarea instalării modulului se face inspectând lista phpinfo() la secţiunea Configuration > apache2handler, unde ar trebui să apară mod_rewrite în linia Loaded Modules.

În testarea pe localhost trebuie specificată în fişierul .htaccess calea către rădăcina site-ului.

Options +FollowSymLinks
RewriteEngine on
RewriteBase /turism/
RewriteRule litoral\.htm intern.php?tip=7 [L]
RewriteRule lista/pagina-([0-9]+)\.htm lista.php?pagina=$1 [L]

Regulile de transformare necesită actualizarea codului paginii, cum ar fi de exemplu:

<a href="litoral.htm">Litoral</a>
<a href="lista/pagina-{numar}.htm">Next</a>

în loc de

<a href="intern.php?tip=7">Litoral</a>
<a href="lista.php?pagina={numar}">Next</a>

Se poate întâmpla ca după folosirea slash-ului ca separator în legătura statică, calea către fişierele css sau javascript să fie compromisă. Problema poate fi rezolvată prin folosirea tag-ului <base> în antetul paginii:

<base href="http://localhost/turism/">

Postat în XAMPP

XAMPP | short_open_tag în php.ini

După instalarea XAMPP 1.7.3, site-urile de pe localhost create cu CodeIgniter nu mai prelucrau tag-urile php din view-uri. De asemenea error.log din Apache indica:

[error] [client 127.0.0.1] (20024)The given path is misformatted or contained invalid characters

Problema a fost rezolvată prin activarea short_open_tag în php.ini. Situaţia putea fi evitată dacă se foloseau tag-urile complete <php? echo $var; ?> în locul celor simplificate <?=$var?>.

Postat în CodeIgniter

Magento | Editare pagină contact

Magento pune la dispoziţie un formular de contact într-o pagină Contacts, care nu apare în modulul CMS având drept consecinţe lipsa posibilităţilor de editare din interfaţa de administrare şi neafişarea breadcrumbs în pagină. Instrucţiunile următoare vor face pagina de contact accesibilă din backend, însă pentru modificarea formularului trebuie editat fişierul app/design/frontend/default/[tema_implicită]/template/contacts/form.phtml.

Pentru început se va crea o secţiune statică [static block] cu identificatorul [URL Key] contact-info în care vor fi trecute informaţiile suplimentare, după care se va crea o pagină CMS incluzând următoarele caracteristici:

URL Key:
contact-form
Content:
{{block type='core/template' name='contactForm' template='contacts/form.phtml'}}
Design > Layout Update XML:
<reference name="content">
<block type="cms/block" name="contact-info">
<action method="setBlockId"><block_id>contact-info</block_id></action>
</block>
</reference>

Pentru ca formularul să funcţioneze mai trebuie editat fişierul app/design/frontend/default/[tema_implicită]/layout/contact.xml înlocuindu-se <url>contacts</url> cu <url>contact-form</url>. Aceeaşi modificare URL trebuie efectuată şi asupra meniului principal.

Postat în Magento