A hasznos .htaccess fájl

A .htaccess (Apache webszerver egyik fájlja) tartalmának módosításával számos olyan feladatot lehet megoldani, melyet talán már több helyen is láttatok, tapasztaltatok, ám ki nem próbáltatok. Csak hogy párat említsek a lehetséges felhasználási területek közül:

– honlap egészének vagy egyes részeinek név/jelszavas védelme
– honlapod tartalmának más lapra linkelését le lehet tiltani
– egyéni hibalapok (pl. 404)
– látogatók tiltása IP alapján
– stb….

Mielőtt még bármely leírásnak és az ott olvasottak kipróbálásának nekiállnál, fontos hogy tisztázzuk: a .htaccess a fájl neve, és nem a kiterjesztése. Elejéről a pontot nem lehet lehagyni. Nem minden szerveren fog működni, csak ahol a rendszergazda megengedte az egyéni .htacess fájlok használatát (megjegyzem a legtöbb ingyenes tárhelyen nem engedélyezett tapasztalataim szerint, de próbálkozzatok, mert időközben változhat(ott) a helyzet).
A .htaccess fájlt minden esetben fel kell másolni a szerverre (ASCII módban), ajánlott “htaccess.txt” néven, majd az FTP kliens programod segítségével nevezd át “.htaccess”-re.

A .htaccess fájl mindig azt a könyvtárat – illetve a benne lévő alkönyvtárakat – védi, melyben elhelyezted. Ha a www.teneved.hu domain-ed gyökérkönyvtárába tetted, védeni fogja a www.teneved.hu -t, a www.teneved.hu/alkonyvtar1/ -t es az összes többit is.

.htaccess fájllal megoldható feladatok (a teljesség igénye nélkül)

– egyéni hibalapok
– jelszavas védelem
– SSI engedélyezése .htaccess-en keresztül
– látogatók tiltása IP alapján
– alapértelmezett fájl megváltoztatása (pl. index.html-ről indulolap.php)
– átirányítások
– .htaccess tartalom megtekintésének tiltása
– MIME típusok hozzáadása
– fájljaid direkt linkelésének (más honlapokra) tiltása
– könyvtárlistázás tiltása

direkt linkelés tiltása

Ritka idegesítő dolog tud lenni, ha a lapod anyagát más ellopja, sokszor oly pofátlan módon hogy mégcsak le sem menti a fájlokat (kép, video, hang stb..), hanem egyből a te szerveredről linkeli be a saját lapjára. Ezt meggátolandó, a lap gyökérkönyvtárába helyezd el a .htaccess fájlt, az alábbi tartalommal (illetve ennek mintájára a saját domain nevekkel):

1
2
3
4
5
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?tutorial.hu(/)?.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.*\.)?gyik.com(/)?.*$ [NC]
RewriteRule .*\.(wmv|avi|asf|mpg|mpeg|mp3|wav|zip|jpg|jpeg|gif|png)$ http://www.tutorial.hu/tiltottlinkeles.gi [R,NC]

A kód 3-4. sorában azokat a domain-eket kell definiálni, ahonnan engedje a képek megnyitását. Az 5. sorban azokat a fájlkiterjesztéseket kell felsorolni, melyeket védjen a direkt linkelés ellen, illetve az 5. sor utolsó URL-e annak a képnek a hivatkozását tartalmazza, melyet a másik lapon az eredeti képek helyére meg fog jeleníttetni (a “gi” kiterjesztést azért kapta, mert előtte nemsokkal már a gif kiterjesztést letiltottuk). Pl. egy ötlet e kép tartalmához:

“E fájlt a www.teneved.hu lapról akarták belinkelni, de nem sikerült … kérlek nézd meg inkább az eredeti tartalmat.”

Persze nem csak képet lehet megadni, irányíthatod a látogatókat akár a kezdőlapodra is.

jelszavas védelem

A .htaccess módszerrel megoldható név/jelszavas védelemről már volt leírás a lapon, úgyhogy ezt a részt részletesebben ott tudod majd elolvasni. Itt most csak röviden annyit mondanék el, hogy alapvetően 2 fájlt kell elhelyezned a védendő könyvtárba. Az egyik a szokásos “.htaccess” lesz, a másik pedig a neveket és jelszavakat tároló “.htpasswd”.

A .htaccess fájl tartalma legyen az alábbi:

1
2
3
4
AuthName "Protected Area"
AuthType Basic
AuthUserFile /usr/home/www/lapodcime/vedettkonyvtar/.htpasswd
require valid-user

Az 1. sorban a “Protected Area” helyére bármit beírhatsz, ez a név/jelszót kérő ablakban fog megjelenni.
A 3. sorban a .htpasswd fájlod abszolút hivatkozását kell bemásolni.

A “.htpasswd” fájl tartalma pedig a név:jelszó lesz. Minden párost 1-1 sorba kell elhelyezni (amennyiben több név/jelszó páros is van).

1
teneved:$3$OCFDVae8H4vgQqG.

Na most a nevet könnyű beírni, viszont a jelszót kódolva kell tárolni. Ez annyit jelent, hogy vmilyen módon (javaslom az online generátorokat erre a célra) be kell kódolni az általunk használni kívánt jelszót. Ehhez egy kis segítség:

1.) http://htpasswd.i-connector.com // itt be kell írnod a nevet és a jelszót (2x), erre generálja a párost melyet a fájlba kell majd másolnod
2.) // itt a lap alján egyszerre akár 5 párost is meg lehet adni

Látogatók tiltása/engedélyezése IP vagy domain alapján

Ez egy szintén nagyon hasznos szolgáltatás, sok kellemetlenséget meg lehet vele előzni. :) Pl. letilthatod egy vagy több IP, vagy akár IP tartomány hozzáférését a lapodhoz (hackerek ellen, floodolók ellen, vagy épp fordítva is használhatod: mindenkinek tiltod a hozzáférést, pár hely kivételével.

1
2
allow, deny
deny, allow

Az order mindig 3 részből áll. Az elsőben azt kell meghatároznod, hogy a allow (engedélyez) és deny (tilt) paraméterek milyen sorrendben legyenek feldolgozva, tehát order allow,deny vagy épp order deny,allow.

A másodikban azt kell meghatároznod, hogy az első részben megállapított sorrend szerint (pl. order allow,deny esetében) kik férhetnek majd hozzá, illetve kik elől tiltod le a lapodat.

Ezek után már csak azt kell meadni – és ez a harmadik rész -, hogy kik nem férhetnek hozzá (deny) a tartalomhoz.

Egy részről nem esett még szó, ez a “mutual-failure”. Erről bevallom nem sokat tudok, így a szabilinux.hu apache2 konfigurálásából idéznék:

Nézzünk egy példát:

A .htaccess fájl tartalma az alábbi:

1
2
3
4
order allow,deny
allow from 123.45.6.7
allow from 012.34.5.
deny from all

A példában látottak szerint először megadtad, hogy a paraméterek milyen sorrendben kerüljön feldolgozásra (order allow,deny). Ezután a 123.45.6.7 IP-re, illetve a 012.34.5. IP tartománynak engedélyezted a belépést (allow from), és végül minden egyéb kliensnek megtiltottad (deny from all) a csatlakozást.

A fenti IP címek mintájára lehetőség van domain nevek alapján is engedélyezni/tiltani a látogatásokat, Pl. ha a .tutorial.hu beírod allow from .tutorial.hu formában, akkor engedélyezed a belépést a www.tutorial.hu-ról is, meg a pl. galeria.tutorial.hu-ról stb. is…

Nézzünk egy fordított helyzetet: mindenkinek engeded a kapcsolódást, kivétel pár IP cím:

1
2
3
4
order deny,allow
allow from all
deny from 123.45.6.7
deny from galeria.tutorial.hu

Ez esetben először feldolgozásra kerül a 123.45.6.7 és a galeria.tutorial.hu (tiltod őket), egyébiránt engedélyezed a kapcsolatokat mindenkinek.

Alapértelmezett fájl módosítása

Minden szerveren van egy olyan beállítás, mely azt határozza meg, hogy egy könyvtár nevét beírva mely fájlok jelenjenek meg először/alapértelmezetten. Ez általában egy index.html vagy index.htm, index.php szokott lenni, de tetszés szerint módosítható.
Ehhez mindössze a .htaccess fájlba kell az alább sort felvenni

1
DirectoryIndex fajlneve.html

A “fajlneve.html helyett azt kell beírni, amit Te szeretnél alapértelmezettnek. Mivel nem biztos, hogy az általunk beállított fájl létezni fog a könyvtárban (illetve nem biztos, hogy minden könyvtárban lesz), érdemes több fájlt is beállítani.

1
DirectoryIndex fajlneve.html fajlneve.htm fajlneve.php default.htm

Átirányítások

Ha a honlapod (vagy egy része) módosul, új helyre költözik, az átirányítást többféleképpen is meg lehet oldani. Az egyik ilyen a .htaccess-es, mikor a tartalmát az alábbi szerint kell alakítani:

1
Redirect /regikonyvtar/regifajlneve.html http://www.honlapodcime.hu/ujkonyvtar/ujfajlneve.html

Arra figyelj, hogy 3 részből kell állnia, melyek között 1db space kell legyen. Először is van a “Redirect” parancs, majd a régi cím és végül az új cím. A hivatkozások mindig a root könyvtárhoz képest relatívak.

Az átirányításnál nem feltétlenül szükséges fájlnevet is megadni, csinálhatod így is:

1
Redirect /regikonyvtar/ http://www.honlapodcime.hu/ujkonyvtar/

Könyvtárlistázás tiltása vagy engedélyezése

A szerverek többségén az alapértelmezett könyvtárlistázást le szokta tiltani az admin, viszont előfordulhat, hogy olyan szerverre keveredsz ahol mégsem, neked pedig kellemetlen a dolog. Ilyenkor jön a .htaccess, melybe az alábbi tartalmat kell felvenni:

1
IndexIgnore *

A * egy olyan jokerkarakter, melynek köszönhetően a tiltás minden fájlra vonatkozik.

Ebből következik, hogy lehetőség van csak bizonyos fájltípusok tiltására is. Pl. az alábbi tartalmat kell beállítani, ha csak a GIF és JPG képek listázását akarod tiltani:

1
IndexIgnore *.gif *.jpg

Ilyenkor minden fájl fog listázni (pl. txt, html, htm, php stb..), kivétel a fenti kettő.

Amennyiben a szitu pont ellenkezője a fent vázolt helyzetnek, tehát a könyvtárlistázást letiltották de neked szükséged lenne rá, akkor a .htaccess tartalma az alábbi legyen:

1
Options +Indexes

Ennek használata közben légy nagyon óvatos, nehogy olyan fájlok maradjanak fent a szerveren, melyek privát cuccok és nem akarod közreadni.

Ha a könyvtárba elhelyezel egy HEADER fájlt, annak tartalma még a könyvtárlistázás előtt meg fog jelenni. A könyvtárban elhelyezett README pedig a listázás után fog megjelenni.

45 HOZZÁSZÓLÁS

  1. Tisztelt Tutorial!

    A safe_mode és a register_globals ki-be kapcsolása is lehetséges?

    Köszönettel.

  2. János: tudtommal igen, az alábbi módon:

    1
    
    php_flag register_globals off
    1
    
    php_value safe_mode "1"
  3. Tisztelt Tutorial!
    Egy appserv van telepítve egy windows XP-re és azt szeretném elérni, hogy bizonyos könyvtárakat csak bizonyos felhasználók érhessenek el. Sajnos fix IP címük nincs, ezért domain név alapján azonosítanám őket:
    létrehoztam a .htaccess fájlt a könyvtárban
    order deny,allow
    allow from user1.dynalias.com
    allow from user2.dynalias.com
    deny from all
    Sajnos mégsem müködik. Ők sem érik el. pedig ha a allow from user1.dynalias.com sort átírom az ideigelnes ip címükre: allow from xxx.xxx.xxx.xxx, akkor müködik.

  4. Egy problémám volna a mod_rewrite subdomain átirányítással.
    xy.domainom.hu -t szeretném, ha domainom.hu/xy könyvtárra mutasson, de az a gond, hogy xy az egy változó tehát lehet akármi más..
    TIA

  5. “Nézzünk egy fordított helyzetet: mindenkinek engeded a kapcsolódást, kivétel pár IP cím:”

    itt nem jól van formázva a szöveg… kicsit félreértheő a dolog, a /fieldlist miatt…
    de, amúgy köszönöm a leírást, értékes bejegyzés…

  6. Hi!
    A .htaccess-el lehetséges, hogy csak egy darab fájlt tiltsak? Azaz ha valaki ismeri a fájl elérési útját ami legyen valami.php vagy bármilyen más kitejesztésü, akkor azt ne nyithassa meg, és le sem tölthesse?
    ui.:
    Én viszont akár saját, akár egy távoli gépről a cím ismeretében valamilyen formán elérhessem.
    THX

  7. Köszönöm szépen. Megoldottam ;)

    ami úgy néz ki, hogy
    .htaccess fájlban:

    AuthType Basic
    AuthName “AZONOSÍTÁS”
    AuthUserFile “a jelszót tároló fájl elérési útja a jelszót tároló fájllal együtt”
    require valid-user

    A jelszót tároló fájl:
    felhasználó:jelszó páros

  8. Üdv!

    Megoldható az valahogyan, hogy ha a egy portálon a linkelés úgy van megoldva, hogy .hu?cikkazonosito címre jön be egy adott aloldal, akkor ha valaki lehív egy ilyen formában megadott linket, akkor a szerver automatikusan átirányítsa .hu/index.php?cikkazonosito címre? Tehát valami olyan szabályt kéne megadnom, hogy ha van ? a lekért webcímben, akkor automatice tegye be a link közepébe az index.php tag-et…

    Előre is kösz a segítséget!
    CzB

  9. Sziasztok!
    Az lenne a kérdésem, hogy hogyan oldható meg az, hogy kiirja az index.php-t is szerver.
    Tehát, ha begépelem a hxxp://www.oldalam.hu címet a hxxp://www.oldalam.hu/index.php jelenjen meg.
    Váloszotok előre is köszönöm: Laci

  10. Ez erdekelt volna engem is, de en tudtam azt, hogy php_flag register_globals off
    csak azt nem tudom, hogy ezt hova irjam bele?
    Persze a .htacces file-ba, de mindegy, hogy az elejere vagy a vegere, vagy hogy milyen parancs ele vagy utan?
    A drupalt akarnam telepiteni, es azert kerll letiltsam a register_globalst,
    Nyugodtan irhatom oda, ahol van /opt/lampp/lib/php/file mappaban van
    vagy hozzak letre egy uj htacces filet es ha igen, akkor hova tegyem?

  11. Segítséget szeretnék kérni, hogyan tudnám megoldan, hogy egy adott országott kitiltsak, de jelszóval innen is be lehessen lépni, más orságból viszont ne kelljen jelszó és tiltás se legyen?

  12. Hello!

    Én azt szeretném emgcsinálni h a .php/.html/stb… kiterjesztés lemaradjon a linkből. pl van a szerveren egy menu.php, akkor a linken csak http://www.oldal.hu/menu legyen.

    Előre is köszöntem üdv

  13. Elvileg ez megcsinálja (nem ellenőriztem):

    1
    2
    3
    4
    5
    6
    
    RewriteEngine on
    #
    # If requested URL-path plus ".php" exists as a file
    RewriteCond %{DOCUMENT_ROOT}/$1.php -f
    # Rewrite to append ".php" to extensionless URL-path
    RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]

    Amit még írtak hozzá, hogy az apache szervert újra kell indítani, törölni kell a böngésző cache-t.
    Ha bármi gond lenne vele, akkor a neten a “hide .php extension” kifejezéssel tudsz keresni (akár kombinálva az apache, htaccess szavakkal.

  14. Sziasztok!

    A jelszavas védelem nálam érdekesen működik. A .htpasswd fájlba ha ezt írom: alma:a2qaNohJ3mqjQ
    és bejelentkezésnél beírom, hogy alma, jelszónak: korte , akkor nem enged be. Ha viszont azt írom be, hogy alma, jelszónak pedig: a2qaNohJ3mqjQ, akkor igen.

    Mit kéne beállítanom, hogy tudja a szerver, hogy a .htpasswd-ben lévő jelszó “kódolva” van?

    Előre is köszi!

  15. Tisztelt Tutorial!
    Ezen remek írás nyomán én is csináltam egy saját .htaccess filt ami remekül működi is, de egy problémára sehol sem találtam megoldást !
    Történetesen arról volna szó, hogy a bekért jelszó után megnyitja az oldalt (ami idáig rendben is lenne), viszont amikor elmegy az oldalról, majd visszatér akkor nem kéri a jelszót ujjra.
    Hogyan lehetne kiküszöbölni eszt valahogyan ??
    Előre is köszönöm !

  16. Sziasztok!

    Azt hogy ne http://eleres.hu jelenjen meg, hanem eleres.hu/index,sztem a redirect parancsal meg lehet oldani, legalább is ezt gondolom, azok alapján amit olvastam.
    Próbáljátok ki.

  17. Sziasztok!

    Joomlaval lenne egy olyan problémám, hogy nem igazán sikerül a redirectet működésre bírni. Annyira sikerült rájönnöm, hogy a Joomla által betett Sef-es rész bekavar az én egyszerű rewriterule-jaimnak.

    ########## Begin – Joomla! core SEF Section
    #
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^/index.php
    RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC]
    RewriteRule (.*) index.php
    RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
    #
    ########## End – Joomla! core SEF Section

    Ez a Joomla Sef kódja, és ha ez megy, akkor az én szabályaim nem mennem, hanem sima 404es hibával elszállnak. Valaki tudna segíteni ebben?

  18. Sziasztok.

    Aldomain átírányításhoz lenne kérdésem.

    én pl. az aldomain.fodomain.hu -t szeretném átírányítani a fodomain.hu/Mérőhely -re
    kérdésem az megoldható-e úgy ha a .htaccess fájl-al probálnám hasonlóan mit fentebb írtátok

    Redirect /regikonyvtar/regifajlneve.html http://www.honlapodcime.hu/ujkonyvtar/ujfajlneve.html

    hez hasonlóan de akkor meg mit irjak a /regikonyvtar/regifajlneve.html helyére mert nekem nincs ott (nem szükséges)fájl meg könyvtár?

    Köszönettel: Kövics László

  19. Az ilyen htpassword generátorokban meg lehet bízni? (gondolom igen, de hátha nem)

  20. Szerintem igen, de ha vmi gyanús, akkor generáld le a kódot egy másikban is (több ilyen online htaccess generator is van a neten) és hasonlítsd össze őket. :)

  21. Sziasztok azt szeretném megkérdezni, hogy ugyan működik az url végén lévő .php elhagyás de ha pl olyan linkel irom be hogy valami.php akkor viszont megjelenik.
    Hogy tudnám átirányítani hogy sehogyse jelenjen meg a .php?

    Előre is köszönöm a segítséget.

  22. Üdv!

    Azt meg lehet csinálni valahogy, hogy egy adott mappán belül csak az .xyz kiterjesztésűek legyenek jelszóval védettek?

    Kösz!

  23. Hali!
    Nekem nem fogadja el a jelszót amikor beakarom írni, pedig szerintem mindent úgy csináltam ahogy le van írva. Mindkét fájlt feraktam. ha vki tud segiteni pls! :s:S

  24. Hogy lehet elérni azt, hogy a valami.tld/1/2 alakot beírva átirányítson a valami.tld/akarmi.php?ez=1&az=2 alakra?
    Kösz előre is :D

  25. Van egy youtubos videó, ami jónak tünik, nekem nem nagyon működött, de sejtem mit rontottam el:
    http://www.youtube.com/watch?v=ZgCW2x5QCXo

    Az megoldható htaccess-el, hogy a mappán belül minden filenak ugyanaz az ikonja?
    Úgy, hogy nincs benne minden html (php) fileban.
    Előre is köszönöm!

  26. Ha nem jó linket adsz meg, sose kapsz választ a kérdésre. “Rosszul formázott videoazonosító van az URL-ben.”

  27. A módosított link sem jó:

    1
    
    http://www.youtube.com/watch?v=ZgCW2%D75QCXo

    The URL contained a malformed video ID.
    Küldd el a jó URL-t mail-ben és átírom a hozzászólásból, de ne legyen offolva a téma egy rossz URL miatt. txh.

  28. Sziasztok
    Session beállításokat hogyan lehet elvégezni? Nem nagyon találtam róla leírást sehol.
    Előre is köszönet… :)

  29. Sziasztok!

    Segítsetek! /reg/of/ linket szeretnék egy szimpla nem reg nevű php-ra irányítani.

    1
    2
    3
    4
    
    Options +FollowSymlinks
    RewriteEngine on
    RewriteRule ^register/office register1.php
    RewriteRule ^register/personal register.php

    mindkettőre a register.php jön be, illetve ha nem ez a php neve, akkor 404
    többnyire ilyen átirányításaim lennének.

    Előre köszönöm

  30. nah! hat en elag sokat elszenvedtem ezzel, mar nem tudom kik, de tobben is azon vacakoltak amin en, azaz hogy nem fogadja el a jelszot…
    vegul php-val oldottam meg kb google/kurtfobol, kell hozza egy kis fuggveny amit az index elejen meg kell hivni:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    	<?php
    	// ez headert dob, hogy a bongeszonek, hogy kerje a jelszot
    	function auth($user, $passwd) {
    	if ( (!isset($_SERVER['PHP_AUTH_USER'])) || ! (($_SERVER['PHP_AUTH_USER'] == $user) && ( $_SERVER['PHP_AUTH_PW'] == $passwd )) ) {
    	header("WWW-Authenticate: Basic");
    	header("HTTP/1.0 401 Unauthorized");
    	die('denied!');
    	}
    	}
     
    	// amit aztan hivj meg kb igy: (lehetoleg a php elejen, mielott valami mas is header dob..)
     
    	auth('envagyok', 'jelszavam');
     
    	// e voila! itt mar bent vagy, johet az eredeti hokamoka:
    	echo "Hello World!";
  31. Sziasztok!

    subdomaineket szeretném tiltani .htaccess-el.

    Pl: valami.mydomain.hu helyett hiba oldal jöjjön be, vagy a mydomain.hu oldal.

    Meg lehet ezt oldani? Köszi a segítséget.

  32. Sziasztok!

    Azt szeretném megoldani, hogy a htaccess-el készítek egy könyvtárlistázást, de ugyan akkor le is akarom védeni jelszóval az egész könyvtárat. Az Options -Indexes parancs működik is ha csak ez van a htaccess fileba, de ha elé, mögé stb írom a jelszavas védelmet, máris nem listázza ki a könyvtár tartalmát. Tud valaki erre valami megoldást? Előre is köszi!

  33. Rosszul írtam, Options +Indexes…ezt követi a jelszavas parancs sorok és a jelszót kéri, be is enged de nem listázza ki a könyvtárat..

  34. Üdv!
    Én letöltésre kettős védelmet használok. Egyszer belép a rendszerbe, illetve letöltésnél egy .htaccess + .htpasswd védi a könyvtárat.

    Ami a bajom, hogy nem találtam rossz jelszóbevitel esetén elegáns megoldást, vagyis a szabvány 500 as oldal jelenik meg.

    Mit tegyek és melyik fájlba, hogy mondjuk rossz jelszó esetén átirányítás történjen pl a /gyik.html oldalra?

    Köszi előre is.

  35. Sziasztok! Adott egy phplist hírlevélküldő, amihez képeket, csatolmányokat tartalmazó mappák tartoznak. Le szeretném tiltani a Könyvtár listázást, de LAN-ból viszont továbbra is szükségem van rá a fájl elérési útvonalak megadása miatt. A -indexes mindenhol letiltja, ha pedig az allow,deny-vel játszok, akkor bentről minden megy, de kintről nem tölti be a képeket sem. Tehát olyan megoldásra lenne szükségem, ahol LAN felől látszanak a könyvtárak és fájlok, WAN felől pedig csak a fájlok látszanak, könyvtárakat nem lehet tallózni. Ötlet?

HOZZÁSZÓLOK A CIKKHEZ

Kérjük, írja be véleményét!
írja be ide nevét