Afronaut írta:Na szóval tisztázzuk!![]()
Nekem rewrite kell! Nem Robots.txt annak semmi köze az url újraíráshoz...
na szóval még egyszerűbben nem meta tagek érdekelnek mint ahogy azt már írtam...
l2sh köszi a tippet kipróbálom... csak szerinted mindkettőt (mod_rewrite+file_exists($_GET['site']) függvény) kell használni, hogy amikor új oldalt csinálok ne kelljen újra mod_rewriteozni?
mármint megvannak a linkek faszák! és mondjuk hozzáadok egy új oldalt aminek a linkje ez: http://cms-tesztek.weboldala.net/index. ... ry&picID=4 (ez 1ik galériába egy kép) De írja újra az urlt mondjuk erre: http://cms-tesztek.weboldala.net/gallery/pic4 és ne kelljen mindig újra írjak egy rewriteot az adott linkhez!
ötletek?
Apache-ban alapból csak egyszerű átírásokat lehet végezni, vagy írsz új modult hozzá C-ben, és elküldöd az adminnak az SO fájlt. Nem olyan bonyolult.
Na, de tehát eredetileg csak a http://cms-tesztek.weboldala.net/gallery/pic4 mappa lekérését tudod átírni mondjuk http://cms-tesztek.weboldala.net/index. ... llery/pic4 paraméterre.
- Kód: Egész kijelölése
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?mappak=$1 [L]
</IfModule>
Ha engedélyezni szeretnéd azt is, hogy paramétereket írjanak az urlba, pl. http://cms-tesztek.weboldala.net/gallery/pic4/?param=1 , erre van a %{QUERY_STRING} apache változó. Példa:
- Kód: Egész kijelölése
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?mappak=$1&%{QUERY_STRING} [L]
</IfModule>
A többit viszont már php-ban kell megcsinálni. A $_GET['mappak'] értékét szétszeded / jeles elválasztással, és átmásolod a $_GET tömbbe valahogy így:
- Kód: Egész kijelölése
$mappak = $_GET['mappak'];
$tok = tokenize($mappak, "/");
for($i = 0; $i < count($tok); $i++)
{
$_GET[$i] = $tok[$i];
}
function tokenize($str, $tok)
{
$toks = strtok($str, $tok);
$ret = array();
$i = 0;
while($toks !== false)
{
$ret[$i] = $toks;
$toks = strtok($tok);
$i++;
}
return $ret;
}
Viszont ilyen esetben csak a számozást tudod használni, ha a paraméterek ennyire változóak.
De ha tudod a paramétereket, akkor írhatod mondjuk így is a $_GET tömbbe helyezést:
- Kód: Egész kijelölése
$_GET['site'] = $tok[0];
$_GET['picID'] = substr($tok[1], 3);
Akár külön php fájlba is írhatod mindezt, aztán meg egy include()-dal belerakod az index.php-ba.
