T&R splet blog o spletnih storitvah. Razgaljamo tehnologijo!

reference spletnih strani
21st October

Apache htaccess preusmeritve

S pomočjo .htaccess datotek lahko izvajamo različne operacije preden se določena zahteva dejansko izvede, torej lahko si ga zamislimo kot nekakšen pre request. Htaccess se največkrat uporablja za preusmeritve iz stare domene na novo domeno in podobno.

Kje lahko uporabimo htaccess

htaccess sintaksa

htaccess sintaksa ni ravno človeku prijazna, je pa zato moč ter prilagodljivost htaccess toliko večja. Vseh možnosti je preveč zato vam priporočam, da pregledate dokumentacijo na uradni apache strani. Ko boste s pisanjem končali pa lahko sintakso preverite z online validatorjem.

Možne težave

V primeru, da je vaša sintaksa nepravilna oz. je njej pomen dvoumen boste prejeli 500 - Internal Erorr. Še enkrat preverite sintakso ter poskusite počasi odstranjevati določeno funkcionalnost/kodo, tako da bost eliminirali težavo.

Primer uporabite htaccess datoteke

Naj ponovim. Možnih je veliko načinov kako priti do željnega rezultata, zato ni nujno, da so spodnji primeri najbolj optimalni ali najbolj pravilni.

1.) Preusmeritev vse iz www.domena/index.php/vsebina na www.domena/vsebina

CODE:
  1. RedirectMatch 301 ^/index.php(/.*)$ http://www.domena.si$1

2.) Preusmeritev vseh linkov brez www (http://domena.si/) na http://www.domena.si

CODE:
  1. RewriteCond %{HTTP_HOST} ^domena.si [NC]
  2. RewriteRule ^(.*)$ http://www.domena.si/$1 [L,R=301]

3.) Preusmeritev stare domene na novo domeno

CODE:
  1. RewriteRule ^(.*)$ http://www.domena.si/$1 [R=301,L]

4.) Preusmeritev vseh zahtevkov razen izjem na home.php

CODE:
  1. RewriteCond %{REQUEST_URI} !^/static/
  2. RewriteCond %{REQUEST_URI} !^/blog/
  3. RewriteCond %{REQUEST_URI} !^/robots.txt
  4. RewriteRule .* home.php

5.) Preusmeritev iz http na https

CODE:
  1. RewriteCond %{HTTPS} off
  2. RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

6.) Preusmeritev določenega imenika na novo domeno

CODE:
  1. RedirectMatch 301 /seo/(.*) http://domena.si/$1

7.) Kateri dokument naj se naloži ob 401 napaki

CODE:
  1. ErrorDocument 401 /napake/401.html

8.) Preusmeritev vseh zahtevkov razen imenikov ter datotek

CODE:
  1. RewriteEngine On
  2. RewriteCond $1 !^.*(png|swf|gif)$
  3. RewriteCond %{REQUEST_FILENAME} !-d
  4. RewriteCond %{REQUEST_FILENAME} !-f
  5. RewriteRule ^(.*)$ index.php?q=$1 [QSA,L]

9.) Omogočimo dostop le nekaterim IP-jem

CODE:
  1. <Limit GET POST>
  2.  order allow,deny
  3.  allow from 127.0.0.1
  4.  allow from 127.0.0.2
  5.  allow from 127.0.0.3
  6. </Limit>

10.) Preusmeritev določenega imenika na novo domeno

CODE:
  1. Redirect 301 /stara_stran  http://domena.si/nova_stran/

Dodatne informacije

Deli s skupnostjo:

  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks

Podobni članki:

  1. Iskalnikom in uporabnikom prijazni URL-ji (User – SEO freindly URL – Apache, IIS)
  2. Omejitev dostopa do spletne strani preko apache .htaccess in .htpasswd datoteke
  3. cPanel – dodajanje apache mod_geoip modula – omejitev glede na državo obiskovalca
  4. PHP – Virtualne pod-domene – virtual subdomains
  5. Pretvorba PHP MySQL aplikacije v PHP MS SQL aplikacijo (apache, php, mdb2, mysql => iis, php, mdb2, mssql)
  6. Dodatek za pisanje kode (PHP, MySQL, Javascript itd…)
  7. Optimizacija PHP kode – prezgodnja optimizacija je zlo – apache ab testiranje
  8. Poljubno 404 sporočilo – Custom 404 error not found message

2x komentirano na “Apache htaccess preusmeritve”

  1. cPanel – dodajanje apache mod_geoip modula – omejitev glede na državo obiskovalca | T&R splet - internetne storitve je napisal:

    [...] Apache htaccess preusmeritve [...]

  2. Novinec je napisal:

    Kar nekaj dobrih nasvetov ste dali kateri so mi pomagali pri reševanju težav.
    Sedaj pa imam sledeč problem. Sam sem uproabil točko osem (8) sedaj pa me zanima kako bi se dalo najlažje narediti zadevo da bi nekako izgledalo takole:

    Sedaj imam:
    domena.com/novica/idNovice/imeNovice/

    Rad pa bi:
    domena.com/novica/idNovice/imeNovice/.html
    Naj povem da je stran v celoti v phpju.

    In ta .html bi rad vključil v vse podstrani recimo: domena.com/novice.html, domena.com/uporabnik.html

    Upam da razumete kaj želim doseči in da mi boste nekako pomagali. Hvala že v naprej.

Dodaj komentar