Csúnya webcímek szépítése mod_rewrite használatával
Sziasztok!
Jelenleg dolgozom egy adatbázis hátterű oldalon, és mint az ilyenkor lenni szokott, baromi hosszú URL-ek jönnek létre, pl:
http://localhost/index2.php?option=articles&id=15
Ezt szeretném leegyszerűsíteni a következő formára:
http://localhost/articles/15
Számos helyen olvastam erről, meg is próbáltam csinálni a .htaccess fájl segítségével:
Options ExecCGI FollowSymLinks Includes MultiViews
RewriteEngine On
RewriteRule ^/articles/([0-9]+)$ /index2.php?option=articles&id=$1
Azonban kapok egy 404-es üzenetet, miszerint az oldal nem található. Az Apache error.log ezt mondja:
[Thu Apr 15 02:40:59 2004] [error] [client 127.0.0.1] File does not exist: d:/web/csillagaszattortenet.csillagaszat.hu/articles/15
(Ez a d:/web/csillagaszattortenet.csillagaszat.hu most a webrootom.)
Tehát valami oknál fogva nem hajtja végre a RewriteRule szabályt. Van valakinek ötlete, mit szúrtam el? Esetleg az Apache confignál kéne valamit jobban megnéznem?
Az érdekes egyébként, hogy ha a .htaccess fájlban elhelyezek egy
ErrorDocument 404 /error404.php
sort, az működik (tehát 404-es hiba esetén egy saját oldal tartalmát írja ki). Úgy tűnik tehát, a configolással nincs gond. Bár Apache terén még van mit fejlődnöm, így aztán ez sincs kizárva.
A javaslatokat, segítséget előre is köszi!
Laci
■ Jelenleg dolgozom egy adatbázis hátterű oldalon, és mint az ilyenkor lenni szokott, baromi hosszú URL-ek jönnek létre, pl:
http://localhost/index2.php?option=articles&id=15
Ezt szeretném leegyszerűsíteni a következő formára:
http://localhost/articles/15
Számos helyen olvastam erről, meg is próbáltam csinálni a .htaccess fájl segítségével:
Options ExecCGI FollowSymLinks Includes MultiViews
RewriteEngine On
RewriteRule ^/articles/([0-9]+)$ /index2.php?option=articles&id=$1
Azonban kapok egy 404-es üzenetet, miszerint az oldal nem található. Az Apache error.log ezt mondja:
[Thu Apr 15 02:40:59 2004] [error] [client 127.0.0.1] File does not exist: d:/web/csillagaszattortenet.csillagaszat.hu/articles/15
(Ez a d:/web/csillagaszattortenet.csillagaszat.hu most a webrootom.)
Tehát valami oknál fogva nem hajtja végre a RewriteRule szabályt. Van valakinek ötlete, mit szúrtam el? Esetleg az Apache confignál kéne valamit jobban megnéznem?
Az érdekes egyébként, hogy ha a .htaccess fájlban elhelyezek egy
ErrorDocument 404 /error404.php
sort, az működik (tehát 404-es hiba esetén egy saját oldal tartalmát írja ki). Úgy tűnik tehát, a configolással nincs gond. Bár Apache terén még van mit fejlődnöm, így aztán ez sincs kizárva.
A javaslatokat, segítséget előre is köszi!
Laci
A RewriteRule ^/articles hely
NE .htccess!
function readParameters(str) {
$params = explode(".",$str);
$option = $params[0];
$id = $params[1];
}
readParameters($QUERY_SRTING);
?>
vagy, még menőbben, ha aznnyira 1*űsítessz, hogy ennyi legyen: index2.php, persze linkelni akkori is így kell a cikkeket: index2.php?articles.15, akkor csináld így:
function readParameters(str) {
$params = explode(".",$str);
$option = $params[0];
$id = $params[1];
}
session_start();
if(isset($QUERY_STRING)||$QUERY_STRING=="") {
$called_with = $QUERY_STRING;
session_register();
header("Location: $PHP_SELF");
}
else readParameters($called_with);
?>
Re: NE .htccess!
-boogie-
Re: NE .htccess!