WebPillangó főoldal
Oldalak: [1] 2   Le
  Nyomtatás  
Szerző Téma: .htaccess mod_rewrite  (Megtekintve 21636 alkalommal)
anatre

Új tag
*
Nem elérhető Nem elérhető

Hozzászólások: 41


WWW
« Dátum: 2008. 10. 30. - 16:17:29 »

Lenne nekem egy olyan kérdésem, hogy ezeket a csúnya linkeket pl.: http://www.virtualistuning.hu/index.php?page=forum&topik=31
és hasonlók, valahogy nem lehetne szebb formára hozni?
Naplózva
Tupacko
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 966


WWW
« Válasz #1 Dátum: 2008. 10. 30. - 21:29:58 »

Válasz a http://forum.webpillango.org/index.php/topic,16.msg1334.html#msg1334 üzenetre:
De igen Mosolyog Használva a .htaccess mod_rewrite modulját.
Létrehozol egy .htaccess filet abban a könyvtárban, ahol figyelni fogod a linkeket, pl. az oldalad főmappájában. Megnézed, ha létezik a mod_rewrite modul, majd megírod az átirányítást. Elég sok dolgot kell tudni hozza, pl. regular expressionöket, szóval inkább adok egy linket, ahol szépen le van írva, mi hogyan működik:
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html
Példa (nem csak címsor újraírás): http://www.askapache.com/htaccess/ultimate-htaccess-file-sample.html
Naplózva
anatre

Új tag
*
Nem elérhető Nem elérhető

Hozzászólások: 41


WWW
« Válasz #2 Dátum: 2008. 10. 31. - 10:00:46 »

huhh, asszem erre még gyúrnom kell, nem néz ki valami egyszerű dolognak  Kacsint
Naplózva
Tupacko
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 966


WWW
« Válasz #3 Dátum: 2008. 10. 31. - 15:30:26 »

Egy pelda:
Idézet
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^tuningauto/([-a-zA-Z0-9]+)/([0-9]+).([a-z]+)$ index.php?cselekves=$3&nev=$1&id=$2
</IfModule>

Mirol is van szo valojaban. Teszteled, hogy ha letezik a mod_rewrite.c, hogy ne okozz belso szerver hibat, amennyiben nem letezik a kiegeszito. Ha letezik, akkor bekapcsolod a FollowSymLinks lehetoseget, ez szukseges a RewriteEnginehez. Altalaban alapbol be van kapcsolva, de ha megsem lenne, mi bekapcsoljuk, igy nem fog cirkuszolni a RewriteEngine.
Ezt kovetoen jonnek sorra az ujrairasok. Lehet kondiciokat is tenni, de most nem akartam komplikalni. Ha komplikalni akarod, az elobbi hozzaszolasomban adott linken megtalalod a kello dolgokat Mosolyog
Az elso ujrairas azt eri el, hogy minden hxxp://domain.com/tuningauto/kis-NAGY-0123456789/3532525235.mutat link legyen atiranyitva a hatterben a kovetkezo cimre: hxxp://domain.com/index.php?cselekves=mutat&nev=kis-NAGY-0123456789&id=3532525235
Mit ersz el igy? Pl. eleg a link vegen modositsd a kiterjesztest es maris mas-mas muveletet vegezhetsz. A nev csak SEO szempontbol van kiirva, nem is kell atadd az index.phpnak, ha nem akarod. Az id alapjan betudod azonositani az autot.
Hasonlo elven konnyeden megirhatod a neked szukseges dolgokat!

Sok sikert!
Naplózva
torokzsolt
Új tag
*
Nem elérhető Nem elérhető

Hozzászólások: 2


« Válasz #4 Dátum: 2009. 01. 31. - 13:31:58 »

Üdv!

Remélem jó helyre írok.. úgygondolom részben még ide tartozik a téma. Tegnap feltettem egy kérdést: http://webpillango.org/programozas/php/parsegetintostring-php-fuggveny/ (Török Zsolt) Először is szeretném megköszönni a választ. Azthiszem megértettem a megoldást.
Viszont lenne még két apró kérdésem:
1. ha így linkelek: <a href="#2" onclick="ide az ajax azzal nincs gond">2. oldal</a> akkor az is megfelel igaz?
2. ugye ennek a mod_rewrite-nek az is a lényege többek közt hogy a keresők jobban fel tudják térképezni az oldalt.. ha ilyet "#2" használok az ugye nem hátráltatja semmiben?!

Köszi szépen! további szép napot!
Naplózva
Tupacko
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 966


WWW
« Válasz #5 Dátum: 2009. 01. 31. - 20:06:26 »

Igen, ha #2 azt nem tarolja semmiben. Dontened kell. Vagy AJAX es nehezkesen taroljak a keresorobotok, vagy mod_rewrite lapozas szep URLkel. Koztes megoldas, hogy mod_rewrite-al linkelsz az oldalakra kulso oldalrol, de ha mar az oldalon van az illeto, akkor AJAXszal tudjon lapozni.

Udv a forumon!
Naplózva
torokzsolt
Új tag
*
Nem elérhető Nem elérhető

Hozzászólások: 2


« Válasz #6 Dátum: 2009. 02. 02. - 19:29:54 »

Köszi szépen.. Nagyon örülök, hogy rátaláltam az oldalra és egyben a fórumra. Sokat segítettél.. remélem a későbbiekben énis tudok majd valakinek
Naplózva
Tupacko
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 966


WWW
« Válasz #7 Dátum: 2009. 02. 03. - 12:38:49 »

Orulok, hogy tetszik az oldal! Tovabbi kellemes forumozast, olvasgatast Mosolyog
Naplózva
lowert
Tag
**
Nem elérhető Nem elérhető

Hozzászólások: 111


« Válasz #8 Dátum: 2009. 02. 26. - 21:27:42 »

Hello! Még mindig az előző probléma (a PHP részben lévő), csak most szerintem egy kicsit .htaccess irányba nyúlik el.
Az alábbi lenne a kérdésem:

Hogyan tudnám megoldani, hogy a mappa/fájl.pdf  fájlt csak bejelentkezett felhasználók tudják elérni?

Ha be van jelentkezve, akkor mehet a letöltés, ha nincs akkor :
Kód:
403

Forbidden

You don't have permission to access /mappa/fájl.pdf on this server.


Megoldottam, hogy a .htaccess fájl mindenkitől blokkolja a tartalmat


Kód:
Deny from all


de ez meg ugye nem túl jó, most próbálom valahogy kitrükközni, hogy kiolvassa a PHP a mappából, onnan pedig le tudja közölni a linket a bejelentkezett felhasználóknak...
Naplózva
Tupacko
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 966


WWW
« Válasz #9 Dátum: 2009. 02. 28. - 11:02:55 »

.htaccess nem igazan tudja, hogy ki van es ki nincs bejelentkezve. PHPbol is szepen meg lehet oldani. Lesz egy mappad, amitol a kulvilag el van tiltva es lesz egy PHP allomanyod, ami kap egy azonositot, mint parameter (ez a parameter szerint tudod azonositani, hogy melyik allomanyt akarod letolteni. Lehetoleg ne az allomany neve legyen, hogy ne lehessen kikovetkeztetni, mikent kelljen valtoztatni a parameter egyeb allomanyok megszerzese erdekeben). Jol jon egy SQL tabla, amiben van ket oszlop: az elso tartalmazza a file MD5 hash-et, a masodik oszlop a file elereset. A parametert hasznalva, kilehet nyerni a tablazatbol a filet, amit le szeretne tolteni a felhasznalo. Ezt kovetoen, PHPval visszaadod a filet (nezz utanna az fpassthru fuggvenynek).
Visszaterve a letiltas reszere, a letoltes.php elso sorai igy neznenek ki:
Kód:
<?php
  
if ( !beVanLepve() ){
    
header('HTTP/1.1 403 Forbidden');
    die();
  }
?>


Ez kikuldi a megfelelo header informaciot es megallitja a PHP futast, ha az illeto, aki hasznalni akarja a linket, nincs belepve.

Jo kodolast!
Naplózva
lowert
Tag
**
Nem elérhető Nem elérhető

Hozzászólások: 111


« Válasz #10 Dátum: 2009. 03. 01. - 09:07:09 »

Köszi a segítséget!
Én is hasonlóan csináltam a header információs részt (csak a bejelentkezésre küld át), de attól még, ha beírom a fájl teljes elérési útvonalát, ugyanúgy le fogja tölteni, tehát .htaccessel lehetne kóddal elzárni, a PHP beleírja a regisztrált felhasználók kódját és felhasználónevét a .htaccess-be és valahogy miután bejelentkezik, ki szeretném menteni cache-be, és onnan továbbadni a .htaccess-nek, de lehet, hogy ennyit nem ér az egész Mosolyog
Naplózva
anatre

Új tag
*
Nem elérhető Nem elérhető

Hozzászólások: 41


WWW
« Válasz #11 Dátum: 2009. 06. 20. - 14:45:20 »

Namost. Van ugye az az oldalmotorom ami itt van a fórumban, és egy htacces-em.

Kód:
<?php //oldalmotor
$modules["registration"] = "reg.php";
 
$act "news.php"//az alap betoltes, ha nincs megadva a module valtozo
 
if ( !isset($_GET["page"]) ){
  $get_mod "";
}
else $get_mod strip_tags(htmlentities($_GET["page"]));
 
foreach($modules as $mod => $act_m){
  if( strcmp($mod,$get_mod) == ){
$act $act_m;
break;
  }
}
 
if ( file_exists($act) ){
  include $act;
}
else{
  include "error.php";
}
?>

Kód:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^page/([^/\.]+)/?$ index.php?page=$1 [L]
</IfModule>

Miért nem működik? Szomorú
WAMP-ot használok, rewrite_module bekapcsolva.

Naplózva
Tupacko
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 966


WWW
« Válasz #12 Dátum: 2009. 06. 20. - 17:38:20 »

Esetleg próbáld meg úgy, hogy megadod, hogy RewriteBase /. Lehet azért nem működik, mert te kikötöd, hogy úgy kell kezdődjön, hogy /. Próbáld meg úgy is, hogy vedd el a ^ karaktert, a RewriteRule elől. Ha semmi, akkor írasd ki az index.phpban valahol elől, hogy mi van a GET tömbben. Ha semmi, akkor picit még próbáld meg máskét a Rewrite-ot. Elszőször indulj ki egy egyszerű újraírásból, pl. page/ez-pelda pelda.html Ha átirányítódik, akkor próbáld meg az index.php paraméterezni, majd ha minden működik, építsd össze a meglévő weboldal motorral Mosolyog

Ha sehogy sem sikerül, írd le, mit próbáltál, s megpróbálok segíteni ismét. Sok sikert!
Naplózva
anatre

Új tag
*
Nem elérhető Nem elérhető

Hozzászólások: 41


WWW
« Válasz #13 Dátum: 2009. 06. 20. - 18:12:43 »

Az a baj hogy ehhez a rewrite dologhoz annyira nem értek. De szerintem egyenlőre az a gond, hogy ugye nem azt irja hogy:
The requested URL /virtualperformance/reg.php was not found on this server.
hanem csak:
The requested URL /virtualperformance/reg was not found on this server.

vagyis a kiterjesztést nem is érzi. Lehet hogy nagyon nagy hülyeséget beszélek.
Amúgy próbáltam a ^ nélkül is. A GET tömböt pedig kiirja.
Na most ugye nekem úgy néz ki a dolog, hogy van a gyökérkönyvtáram, abban az index.php és a .htacces, és egy page/ mappában pedig a 'modulok'.
Naplózva
Tupacko
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 966


WWW
« Válasz #14 Dátum: 2009. 06. 24. - 20:52:00 »

Azt hiszem a legnagyobb segitseg (es a legpontosabb) az, ha adok ket linket. Olvasd el, nezd meg a peldakat es sikerul megoldanod a gondot.
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

A kiterjeszteses dolog erdekes, de az attol is nagyban fugg, hogyan hivod meg. Az Apache dokumentacio viszont egeszen biztosan megoldast nyujt Mosolyog

Sok sikert!
Naplózva
anatre

Új tag
*
Nem elérhető Nem elérhető

Hozzászólások: 41


WWW
« Válasz #15 Dátum: 2009. 06. 25. - 11:39:26 »

Rendben, köszönöm szépen Kacsint
Naplózva
Tupacko
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 966


WWW
« Válasz #16 Dátum: 2009. 06. 26. - 15:01:00 »

Szivesen!
Naplózva
liptakrobi
Új tag
*
Nem elérhető Nem elérhető

Hozzászólások: 12


« Válasz #17 Dátum: 2010. 06. 04. - 16:07:02 »

Hello

Azt akarom kérdezni hogy WP nél is meg lehet változtani a .htaccesst?
Pl a következő url-eket lecserélni.
hxxp://seat-info.info/kepgaleria/exeo-st?show=gallery&nggpage=2
hxxp://seat-info.info/kepgaleria/exeo-st/kepek/page/2

vagy
hxxtp://seat-info.info/kepgaleria/exeo-st?show=slide
hxxp://seat-info.info/kepgaleria/exeo-st/diavetites
Naplózva
Tupacko
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 966


WWW
« Válasz #18 Dátum: 2010. 06. 06. - 08:27:41 »

A WP-nel is meglehet valtoztatni, termeszetesen, mert a htaccess a szervernek ad parancsokat. A gond viszont az, hogy a WP szereti maga feldolgozni az URL-ket, eppen ezert a WP htaccess allomanya nem tesz mast, mint a teljes reszt, ami a domain nev utan van atadja parameternek az index.php-nak. Ez arra jo, hogy nem kell a hozza nem erto emberek a szerveren kinlodjanak, hanem a WPben nehany kattintassal megtudjak valtoztatni, hogy mikent akarjak elerni a kulonfele oldalakat.
Allitolag a NextGen Smooth Gallery-nek mar van beepitet keresomotor barat hivatkozas lehetosege. Esetleg probald ki: http://uninuni.com/wordpress-plugin-nextgen-smooth-gallery/
Naplózva
liptakrobi
Új tag
*
Nem elérhető Nem elérhető

Hozzászólások: 12


« Válasz #19 Dátum: 2010. 06. 07. - 00:55:32 »

Köszi, belenézek a php részébe, találtam már 2 rewrite fájlt is szerintem ott kell megadni milyen url-t mire alakítson. És a .htaccess marad úgy ahogy van. Remélhetőleg.
Naplózva
Oldalak: [1] 2   Fel
  Nyomtatás  
 
Ugrás: