PHP - htaccess- mod_rewrite
Sziasztok!
Csinalok egy honlapot és a következő gondjaim akadtak:
Ha beír valaki valamit az URL-be, azt szeretném hogy mindig az index.php fusson le.
Na most van néztem a rövid webcímek c. cikket nem nagyon tudtam megoldani a problémákat.
.htaccess tartama:
Options +MultiViews
<IfModule mod_rewrite.c>
RewriteEngine on
# Ebben az alkonyvtarban vagyunk, ezt
# figyelembe kell venni az atirasoknal
#RewriteBase /cegunkwebhelye
# Minden nemletezo oldal webcimet iranyitsuk at az index.php-re
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [QSA]
</IfModule>
index.php tartalma:
<?php
// Kapjuk el azt az cimet, amit kertek es az alapjan dontsuk el, mit toltunk be
$URI = (isset($_SERVER['REQUEST_URI']) ? substr($_SERVER['REQUEST_URI'], 1) : '');
$URIparts = explode("/", $URI);
switch ($URIparts[0]) {
case 'regisztracio':
include 'php/login/login.php';
break;
default:
print "valami";
break;
}
Na szoval, ha valaki beirja azt a böngészőbe hogy http://localhost/regisztracio akkor ez jó is. Betöltődik szépen a php/login/login.php fájl.
Na de a login.php-ba van egy olyan hogy
if ($_SERVER['PATH_INFO'] == "/ellenorzes") {
print "ez és ez";
}
Na szóval, hogyha beirom a böngészőbe, vagy egy form a /regisztracio/ellenorzes-re mutat, akkor ez a kód nem fog végrehajtódni.
Na szerintem a htaccess-be kellene valami 2. szintet létrehozni, nem tudom. Ebbe kérném a segítségeteket.
Köszönöm szépen.
■ Csinalok egy honlapot és a következő gondjaim akadtak:
Ha beír valaki valamit az URL-be, azt szeretném hogy mindig az index.php fusson le.
Na most van néztem a rövid webcímek c. cikket nem nagyon tudtam megoldani a problémákat.
.htaccess tartama:
Options +MultiViews
<IfModule mod_rewrite.c>
RewriteEngine on
# Ebben az alkonyvtarban vagyunk, ezt
# figyelembe kell venni az atirasoknal
#RewriteBase /cegunkwebhelye
# Minden nemletezo oldal webcimet iranyitsuk at az index.php-re
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [QSA]
</IfModule>
index.php tartalma:
<?php
// Kapjuk el azt az cimet, amit kertek es az alapjan dontsuk el, mit toltunk be
$URI = (isset($_SERVER['REQUEST_URI']) ? substr($_SERVER['REQUEST_URI'], 1) : '');
$URIparts = explode("/", $URI);
switch ($URIparts[0]) {
case 'regisztracio':
include 'php/login/login.php';
break;
default:
print "valami";
break;
}
Na szoval, ha valaki beirja azt a böngészőbe hogy http://localhost/regisztracio akkor ez jó is. Betöltődik szépen a php/login/login.php fájl.
Na de a login.php-ba van egy olyan hogy
if ($_SERVER['PATH_INFO'] == "/ellenorzes") {
print "ez és ez";
}
Na szóval, hogyha beirom a böngészőbe, vagy egy form a /regisztracio/ellenorzes-re mutat, akkor ez a kód nem fog végrehajtódni.
Na szerintem a htaccess-be kellene valami 2. szintet létrehozni, nem tudom. Ebbe kérném a segítségeteket.
Köszönöm szépen.
Egy entry point?
Alapvetően az egy nagyon ódivatú és nem is túl biztonságos megközelítés, hogy beinclude-olod a login.php-t oda, ahol bejelentkeztetni akarsz, mert csak egy helyen kell elfelejtened.
A struktúrából nekem úgy tűnik, nem nagyon szoktál még függvényeket, osztályokat használni, de javaslom, hogy az útvonalaidat valami központi helyen vedd föl mondjuk egy tömbbe, esetleg többdimenziós tömbbe, ott írd le, melyik fájlt kell lefuttatni és ott jelöld is meg, melyik oldalra kell jelszó, melyikre nem. (Ezt hívnák OOP szemléletben front controllernek).
Egy entry point?
Ki lehet venni
RewriteCond %{REQUEST_URI} !^/static